如何完美的将对话框设置成无边框无标题栏样式?

来源:互联网 发布:文渊阁四库全书数据库 编辑:程序博客网 时间:2024/05/17 22:47

很多同学在绘制UI时喜欢将窗口或者对话框设置成无边框无标题栏样式,然后在客户区里就可以”胡作非为“了,想干什么都行

然而新手们包括笔者以前都遇到的一个问题是:对于对话框来说直接这样设置:

ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED);

是不完美的,他们会发现在对话框的情况下,那个border还是存在,最后怎么设置都不可行,对于一般从CWnd派生然后用Create方法创建的窗口却没什么问题。

解决方案:

这里我告诉你如何设置,以下代码适用所有窗口,设置后边框没了,标题栏也没了

纯净的客户区就美丽的显示在你的面前:

?
1
2
3
4
5
6
7
8
9
DWORD dwStyle = GetStyle();//获取旧样式
 WORDdwNewStyle = WS_OVERLAPPED | WS_VISIBLE| WS_SYSMENU |WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
dwNewStyle&=dwStyle;//按位与将旧样式去掉
SetWindowLong(m_hWnd,GWL_STYLE,dwNewStyle);//设置成新的样式
DWORD dwExStyle = GetExStyle();//获取旧扩展样式
DWORD dwNewExStyle = WS_EX_LEFT |WS_EX_LTRREADING |WS_EX_RIGHTSCROLLBAR;
dwNewExStyle&=dwExStyle;//按位与将旧扩展样式去掉
SetWindowLong(m_hWnd,GWL_EXSTYLE,dwNewExStyle);//设置新的扩展样式
SetWindowPos(NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);//告诉windows:我的样式改变了,窗口位置和大小保持原来不变!
阅读全文
0 0
原创粉丝点击