如何完美的将对话框设置成无边框无标题栏样式?
很多同学在绘制UI时喜欢将窗口或者对话框设置成无边框无标题栏样式,然后在客户区里就可以”胡作非为“了,想干什么都行
然而新手们包括笔者以前都遇到的一个问题是:对于对话框来说直接这样设置:
ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED);
是不完美的,他们会发现在对话框的情况下,那个border还是存在,最后怎么设置都不可行
DWORD dwStyle = GetStyle();//获取旧样式
DWORD dwNewStyle = 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);//设置新的扩展样式
//告诉windows:我的样式改变了,窗口位置和大小保持原来不变!
SetWindowPos(NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
原文地址:http://blog.csdn.net/hurryboylqs/article/details/5525597