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

来源:互联网 发布:python exit code 9 编辑:程序博客网 时间:2024/05/16 06:31

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

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

ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED);

是不完美的,他们会发现在对话框的情况下,那个border还是存在,最后怎么设置都不可行

对于一般从CWnd派生然后用Create方法创建的窗口却没什么问题

 

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

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


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);//设置新的扩展样式    SetWindowPos(NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);//告诉windows:我的样式改变了,窗口位置和大小保持原来不变!