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

今天公司新开始的一个项目。界面模式为无边框无标题栏初始最大化样式。其实本来可以直接在属性里面将默认的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); 

第二种:

 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); 

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

参考博客:

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

时间: 2024-11-10 10:36:10

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

MFC 小知识总结四

1 PlaySound  播放WAV格式的音乐 This function plays a sound specified by a file name, resource, or system event. <strong>BOOL WINAPI PlaySound( LPCSTR</strong> <em><a target=_blank class="synParam" href="http://write.blog.csdn.

MFC 小知识总结五

1 移动无标题对话框   响应WM_NCHITTEST 消息 [cpp] view plaincopy LRESULT CTimeJishiDlg::OnNcHitTest(CPoint point) { // TODO: 在此加入消息处理程序代码和/或调用默认值 LRESULT res=CDialogEx::OnNcHitTest (point); if (res==HTCLIENT)        //HTclient  落在客户区 { res=HTCAPTION;    //返回标题栏资源

MFC 基础知识:对话框背景添加图片和按钮Button添加图片

很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任何知识一段时间过后都比较容易忘记,但回顾起来还是很有印象的. 这篇文章主要是回顾以前的MFC基础知识,给对话框添加背景图片和给按钮button添加背景图片:希望此篇基础性文章对大家有所帮助!同时为下次做MFC相关知识提供点此时所想所感吧.内容比较简单,高手飘过~ 一. 对话框背景添加图片 首先通过VS2012创建MFC对话框应用程序,项目

MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/details/5866213 二.在对话框中创建视图(我这里创建的是一个滚动视图): 见博文: http://blog.csdn.net/clever101/article/details/4873994 http://blog.csdn.net/clever101/article/details/37790

Android 48个小知识

1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 2.TextView部分文字设置颜色 TextView tv = new TextView(this); //添加css样式 tv.setText(Html.fromHtml("<font color="#ff0000">红色<

电脑系统维护小知识!——————【Badboy】

电脑系统维护小知识 1.经常进行"磁盘清理"和磁盘碎片整理" 当硬盘用久了,无数次的新增.更改和删除程序和文件后,就会造成很多断断续续的扇区,非连续性的文件便会愈来愈多,硬盘磁头便需要花更多时间跳来跳去来读取数据,这就导致硬盘速度减慢.因此,我们应该定期进行"磁盘清理"和磁盘碎片整理",将所有非连续性的文件重新编排整齐.处理方法:点开始-程序-附件-系统工具-磁盘清理程序和磁盘碎片整理程序.有可能整理过程很慢,那是你长时间没有清理或者有只读文件,

delphi Form属性设置 设置可实现窗体无最大化,并且不能拖大拖小

以下设置可实现窗体无最大化,并且不能拖大拖小BorderIcon 设为---biMax[False] biHelp [False]BorderStyle 设为---bsSingle 参考-------------- 可以通过设置窗体的属性以及编程的方法,限制和控制窗体的变化.如让窗体不能最小化.最大化.-----1.通过属性设置方法使用Form的BorderIcon属性,我们可设置窗体是否具有系统菜单(biSystemMenu).最小化按钮(biMinimize).最大化按钮(biMaximiz

MFC中添加新的对话框

MFC工程中,除了系统自动生成的一些对话框之外,还需要根据自己的需求,添加新的对话框.这里总结下自己最近使用的方法. 首先,找到Resource View中自己新建的工程,然后右键,选择Add Class,然后弹出的对话框中对新增的类进行设置,在Base Class需要选择CDialog,然后输入新增类的名称之后,就新增了一个类.这个类不仅有对应的头文件还有.cpp文件,以及一个与这个类对应的UI界面. 然后,需要将新增的类对应的头文件包含到它对应的父类的头文件中,同时在protected域中声

12个css小知识

1.CSS的color属性并非只能用于文本显示对于CSS的color属性,相信所有Web开发人员都使用过.如果你并不是一个特别有经验的程序员,我相信你未必知道color属性除了能用在文本显示,还可以用作其它地方.它可以把页面上的所有的东西都变颜色.比如:无法显示的图片的alt文字list元素的边框无序list元素前面的小点有序list元素前面的数字还有hr元素 2.CSS里的visibility属性有个collapse属性值:collapse对于CSS里的visibility属性,相信你用过不下