MFC|创建一个对话框及窗体各个属性介绍

参考:
VS2015 建立一个C++的MFC简易窗体程序项目(https://www.cnblogs.com/xingboy/p/11059721.html)
对话框中各项属性介绍(https://blog.csdn.net/u012350993/article/details/26093051)
MFC窗口风格 WS_style/WS_EX_style(超详细)(https://www.cnblogs.com/chanyuantiandao/p/15598328.html)

最近痛苦学习MFC,不知道MFC是否会被淘汰,博主有C++/qt基础。MFC大部分学习资料都比较老,根据网上七零八凑的学习资料整合成自己的博文,理解不够深入,有问题欢迎指出。
同样有关属性的超链接为搜索到的好理解的好文,后期怕丢失可能会做有关的转载记录,属性值介绍在后面可点目录链接跳转。

建立一个单纯的窗体程序项目步骤。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把预先自动生成的按钮跟文字删除,拖动左边的控件到窗体上,就可以类似QT那样子编辑界面了,双击控件还可以自动生成控件的触发函数,这个跟C#的窗体控件编程一样,这样就可以根据自己需要编辑界面了,编辑效果如下:
在这里插入图片描述

窗体右侧各个属性值介绍。

Appearance

在这里插入图片描述
在这里插入图片描述

  • 3D Look:指定对话框的字体将为非粗体,控件将具有3D边框。我开关尝试了一下默认看不出什么差别。
  • Absolute Align:表示使用坐标相对于屏幕原点。确定对话框的对齐方式,设置为true运行窗口自动与屏幕左上角对齐显示;取消选中该复选框,则对话框相对于父窗口的左上角坐标显示。
  • Border:表示窗口边框。None没有边框,且没有标题栏。Thin表示窗口具有细的边框;Resizing表示窗口具有粗边框,用户能通过鼠标调整窗口大小;Dialog Frame是默认选项,表示默认风格。
    在这里插入图片描述
  • Caption:设置对话框标题。
  • Client Edge:对话框具有凹陷的边沿。设置为true后可明显看出内框有凹下去的感觉。
    false
    在这里插入图片描述
    true:
    在这里插入图片描述
  • Clip Children:设置为true后,表示在窗口中进行绘制操作时去除子窗口占据的区域。个人理解就是是否绘制子窗口,详细可看超链接。
  • Clip Siblings:不重画子窗口。排除子窗口之间的相对区域,也就是说,当一个特定的窗口接收到绘图消息时,将所有重叠窗口排除在外,只重绘指定的子窗口。
  • Composited:将一个窗体的所有子窗口使用双缓冲按照从低到高方式绘制出来。
  • Horizontal Scrollbar:是否在窗口中显示水平滚动条。
  • Layered:设置窗口透明度,设置为true则窗口全透明不可见。
  • Layout RTL:设置为true则变为从右往左的布局方式,适用于从右往左的阅读习惯。
  • Left Scrollbar:将垂直滚动条放在客户区的左边。
  • Maximize Box:需要先将System Menu属性设置为true才可编辑,设置最大化按钮是否可用。
  • Minimize Box:同上,设置最小化按钮是否可用。
  • No Activate:处于顶层但不激活。设置为true之后点击combox主窗体会失去焦点,如图所示。
    在这里插入图片描述
  • Overlapped Window:表示窗口是重叠窗口,重叠窗口是一个顶层窗口,并且具有标题栏和边框。组合了WS_EX_CLIENTEDGE(带阴影的边缘)和WS_EX_WIND-OWEDGE风格。
  • Palette Window:带立体边框,有工具条窗口样式,窗口在顶层。设置为true后,Tool Window、Topmost、Window Edge状态都会跟着变化。
    在这里插入图片描述
  • Static Edge:具有默认的三维效果边框。当窗口为不可用状态时创建一个三维边缘。我是没看出什么差别。
  • Style:窗口风格,Popup表示弹出窗口,弹出窗口不能作为子窗口;Overlapped表示窗口是重叠窗口,重叠窗口是一个顶层窗口,并且具有标题栏和边框;Child表示窗口是一个子窗口,子窗口必须在窗口内显示。
    在这里插入图片描述
  • System Menu:窗口是否具有标题栏按钮以及右键弹出式菜单。与Maximize Box和Minimize Box联动。
  • Title Bar:表示窗口是否具有标题栏。其中如果Style为true则必须有标题栏该状态不可改,同时状态栏设置为false,状态栏上所有属性将不可更改。
  • Tool Window:创建工具栏窗口。工具栏窗口通常作浮动工具栏。工具栏窗口中的标题栏比正常窗口的标题小一些,文本字体也小于正常标题栏字体。
    设置为true后样式变为这样:
    在这里插入图片描述
  • Topmost:窗口置顶(停留在所有非最高层窗口的上面)。指定用这个风格创建的窗口必须被放在所有非顶层窗口的上面,即使这个窗口已经不处于激活状态,它还是保留在最上面。应用程序可以用SetWindowsPos成员函数来加入或去掉这个属性。
  • Transparent:是窗口透明,在该窗口下的所有窗口不能被覆盖。通常,该窗口在其下面的所有兄弟窗口更新后才会接收到WM_PAINT消息。
  • Vertical Scrollbar:是否在窗口中显示垂直滚动条。设置为true后:
    在这里插入图片描述
  • Window Edge:带凸起边缘的边框。

Behavior

  • Accept Files:对话框接受文件拖动,用户可将文件拖动到对话框上,此时对话框将接收到WM_DROPFILES消息。
  • Application Window:个人理解是否是一个单独的可执行程序EXE。
  • Disabled:表示对话框创建时初始化为不可用状态。所有按钮及状态栏都为不可选中状态。
  • NoInheritLayout:子控件不继承窗体或控件的布局。
  • Right To Left Reading Order:从右到左的阅读顺序。
  • Set Foreground:使对话框在最前面显示。表示设置前台窗口,并激活窗口,创建窗口的线程被放置在前台,使得它的优先权略高于其他线程。前台窗口是Z轴中的顶层窗口,是用户工作的窗口。
  • System Model:使窗口始终保持在最上方。
  • Visible:对话框在首次显示时是否可见。

Font

  • Font(Size):设置字体样式大小,界面会随着字体大小变化整体变化。
  • Use System Font:是否使用系统字体。

Misc

  • (Name):顾名思义,不可更改创建时生成。
  • Center Mouse:在对话框中使鼠标指针居中。true对话框创建出来时以鼠标位置居中,false对话框创建出来后为屏幕居中位置。
  • Class name:向Windows操作系统注册的窗口类名,不同于C++的类名,是为了支持C程序设计提供的。一般不用。
  • Control:控件模式,可作为其他对话框的子窗口。使对话框作为另一个窗口的子控件被显示,此时,对话框就像一个普通的控件一样。用户可用tab键跳转到该界面。
  • Control Parent:允许用户用TAB键遍历窗口的子窗口。
  • ID:用于设置资源ID,是程序对资源的标识。
  • Local Edit:在对话框内部为编辑框分配内存(仅支持16位程序)。表示对话框中的编辑框控件使用应用程序数据段中的内存。
  • Menu:have no idea
  • No Fail Create:表示创建过程出现错误,仍然创建对话框。
  • No Idle Message:表示当消息队列中没有更多的等待消息时,阻止WM_ENTERLDLE消息发送到对话框的所有者。
  • No Parent Notify:表示子窗口不能发送WM_PARENTNOTIFY消息到它的父窗口。
  • Right Align Text:文本右对齐

Position

  • Center:对话框在工作区域居中显示。
  • X Pos:对话框创建时左上角x相对于屏幕左上角的位置。
  • Y Pos:对话框创建时左上角y相对于屏幕左上角的位置。
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇树谦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值