码迷,mamicode.com
首页 > 编程语言 > 详细

MFC小知识一:将对话框设置为无边框无标题栏初始最大化样式

时间:2017-06-10 14:08:34      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:net   sed   hid   code   app   pos   博客   visible   visual   

     今天公司新开始的一个项目。界面模式为无边框无标题栏初始最大化样式。其实本来可以直接在属性里面将默认的Resizing换成none就可以了,那么我想如何用代码来实现呢?于是就百度了一下。找到了两种方式,但其实两种方式思想是一样的。即修改样式——ModifyStyle。直接将以下代码加在OnInitDialog()即可实现。

第一种:

技术分享
1 // 去掉标题栏  
2 ModifyStyle(WS_CAPTION, 0); 
3  // 去掉边框
4 ModifyStyleEx(WS_EX_DLGMODALFRAME, 0);  
5 //窗口位置和大小保持原来不变
6 SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_FRAMECHANGED); 
7 //最大化窗口
8 ShowWindow(SW_MAXIMIZE); 
View Code

 第二种:

技术分享
 1 //获取旧样式
 2 DWORD dwStyle = GetStyle();
 3 DWORD dwNewStyle = WS_OVERLAPPED | WS_VISIBLE| WS_SYSMENU |WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
 4 //按位与将旧样式去掉
 5 dwNewStyle&=dwStyle;
 6 //设置成新的样式
 7 SetWindowLong(m_hWnd,GWL_STYLE,dwNewStyle);
 8 //获取旧扩展样式
 9 DWORD dwExStyle = GetExStyle();
10 DWORD dwNewExStyle = WS_EX_LEFT |WS_EX_LTRREADING |WS_EX_RIGHTSCROLLBAR;
11 //按位与将旧扩展样式去掉
12 dwNewExStyle&=dwExStyle;
13 //设置新的扩展样式
14 SetWindowLong(m_hWnd,GWL_EXSTYLE,dwNewExStyle);
15 //窗口位置和大小保持原来不变
16 SetWindowPos(NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
17 //最大化窗口
18 ShowWindow(SW_MAXIMIZE); 
View Code

目前看来,两种方式都没有什么其他后遗症,那么就简洁看来自然是第一种比较好。

参考博客:

http://blog.csdn.net/hurryboylqs/article/details/5525597#comments

http://blog.csdn.net/CKRGD/article/details/48372913

http://blog.csdn.net/visualeleven/article/details/19543391

MFC小知识一:将对话框设置为无边框无标题栏初始最大化样式

标签:net   sed   hid   code   app   pos   博客   visible   visual   

原文地址:http://www.cnblogs.com/ljj-yuanfang/p/6978205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!