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

news2024/10/5 18:34:07

参考:
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大部分学习资料都比较老,根据网上七零八凑的学习资料整合成自己的博文,理解不够深入,有问题欢迎指出。
同样有关属性的超链接为搜索到的好理解的好文,后期怕丢失可能会做有关的转载记录,属性值介绍在后面可点目录链接跳转。

文章目录

  • 建立一个单纯的窗体程序项目步骤。
  • 窗体右侧各个属性值介绍。
    • Appearance
    • Behavior
    • Font
    • Misc
    • Position

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把预先自动生成的按钮跟文字删除,拖动左边的控件到窗体上,就可以类似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相对于屏幕左上角的位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185520.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Hadoop】YARN简述

文章目录1. YARN总述2. YARN调度器2.1 FIFO Scheduler2.2 Capacity Scheduler2.3 Fair Scheduler1. YARN总述 YARN是Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理…

关于栈和队列

目录栈(Stack)什么是栈栈的使用栈的模拟实现队列(Queue)什么是队列队列的使用队列的模拟实现循环队列双端队列 (Deque)栈(Stack) 什么是栈 栈是一种特殊的线性表,它只允许在固定的一端进行插入…

JavaScriptArray和String对象~

初识Array&#xff1a; 定义&#xff1a; 方式1 var 变量名new Array(元素列表);举例&#xff1a; <script>var arraynew Array(1,2,3);alert(array); </script>显示如下&#xff1a; 方式2 var 变量名[元素列表];举例&#xff1a; <script>var array[…

App Inspector使用 (macaca移动端元素检查器)

App Inspector安装说明&#xff1a;https://macacajs.github.io/app-inspector/zh/guide/install.html#%E7%8E%AF%E5%A2%83%E9%9C%80%E8%A6%81 依赖安装说明&#xff1a; 1、node环境&#xff1a;这里安装的时候和初始化的时候报错使用了两个版本&#xff0c;所以这里使用nvm…

Python-模块、包和发布模块

1.模块1.1模块的概念模块是python程序架构的一个核心概念每一个以扩展名.py结尾的python源代码文件都是一个模块模块名同样也是一个标识符&#xff0c;需要符合标识符的命名规则在模块中定义的全局变量、函数、类都是提供给外界直接使用的工具模块就好比工具包&#xff0c;要想…

世界坐标系->相机坐标系详细推导

基变换 理论部分 在n维的线性空间中&#xff0c;任意n个线性无关的向量都可以作为线性空间的基&#xff0c;即空间基不唯一。对于不同的基&#xff0c;同一个向量的坐标一般是不同的。因为在计算机图形学中&#xff0c;主要研究三维的空间&#xff0c;所以可以简化问题倒三维…

Hi3861鸿蒙物联网项目实战:智能测距仪

华清远见FS-Hi3861开发套件&#xff0c;支持HarmonyOS 3.0系统。开发板主控Hi3861芯片内置WiFi功能&#xff0c;开发板板载资源丰富&#xff0c;包括传感器、执行器、NFC、显示屏等&#xff0c;同时还配套丰富的拓展模块。开发板配套丰富的学习资料&#xff0c;包括全套开发教程…

真假流量卡区别,一篇文章教你怎么区分流量卡和物联卡!

真假流量卡区别&#xff0c;小编教你怎么区分流量卡和物联卡&#xff0c;近年来&#xff0c;市面上的流量卡种类繁多&#xff0c;其中不乏有一些虚假的、有套路的套餐&#xff0c;那么&#xff0c;我们如何辨别流量卡的正规性呢&#xff0c;接下来&#xff0c;跟着小编一块来了…

114.简单的动态切换app的图标,两种方式

第一种方式&#xff1a; 1.第一步 通过activity-alias别名实现&#xff0c;manifest 这里写的是一个默认的图标Default和一个需要切换的图标Test&#xff0c;以及一个默认的首页面HomeActivity&#xff1a; <!-- 默认的图标--> <activity-aliasandroid:name".ac…

基于java SSM springboot+redis网上水果超市商城设计和实现以及文档

基于java SSM springbootredis网上水果超市商城设计和实现以及文档 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留…

java8中stream流式编程的使用大全

一、概述 Stream流操作是Java 8提供一个重要新特性&#xff0c;它允许开发人员以声明性方式处理集合&#xff0c;其核心类库主要改进了对集合类的API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中&#xff0c;能 让代码更加简…

Node.js教程笔记(四)数据库与身份认证

学习目标 1、能够知道如何配置Mysql数据库环境 2、能够认识并使用常见的SQL语句操作数据库 3、能够在Express中操作Mysql数据库 4、能够了解Session的实现原理 5、能够了解JWT的实现原理 目录 1、数据库的基本概念 2、安装并配置Mysql 3、Mysql的基本使用 4、在Expre…

全球数十万客户选择亚马逊云科技数据库服务构建自己的应用

日前&#xff0c;全球市场分析机构Gartner发布《2022云数据库管理系统魔力象限》报告&#xff08;2022 Gartner Magic Quadrant™ for Cloud Database Management Systems&#xff09;。Gartner数据显示&#xff0c;整个数据库管理系统市场在2021年实现强劲增长22.3%&#xff0…

【五六七人口普查】我国省市两级各行业门类人口及三次产业人口比重

人口数据是我们在各项研究中最常使用的数据&#xff01;之前我们分享过第七次人口普查&#xff08;简称七普&#xff09;的数据&#xff01;很多小伙伴拿到数据后都反馈数据非常好用&#xff0c;同时很多小伙伴咨询有没有前面几次人口普查的数据&#xff0c;这样方便做人口变化…

【Java】final关键字和final的四种用法

final定义 final翻译成中文的意思是 “最终” &#xff0c; 它是java当中的一个关键字&#xff0c;使用final修饰的对象不允许修改或替换其原始值或定义。 假如当final修饰一个类的时候&#xff0c;是不能被其他类继承的。 final的四种用法 修饰类修饰方法修饰变量修饰参数 1.…

会话保持技术:cookie、session

目录 1.概述 2.cookie 3.session 1.概述 会话保持技术的出现是因为HTTP 是一个无状态的协议&#xff0c;这一次请求和上一次请求是没有任何关系的&#xff0c;互相无法感知&#xff0c;上一次请求干了什么&#xff1f;这一次请求完全不知道&#xff0c;会话保持技术就是为了…

Python协程asyncio异步编程结合uvloop性能提升

asyncio介绍 和我们以前常用的gevent模块相似&#xff0c;asyncio模块也是在Python中实现协程的模块区别是gevent是第三方库&#xff0c;通过greenlet实现协程&#xff0c;遇到I/O自动切换&#xff08;自动挡&#xff09;asyncio是Python 3.4版本引入的标准库&#xff0c;asyc…

GitHub访问问题与FastGithub下载及使用(详细篇)

前言 &#x1f4dc; “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴 目录 前言 FastGithub的介绍 FastGithub的下载 FastGithub的安装及…

23种设计模式之综合实战篇

23种设计模式之综合实战篇1. 设计模式概述1.1 什么是设计模式1.2 设计模式的好处2. 设计原则分类3. 详解3.1 单一职责原则3.2 开闭原则3.3 里氏代换原则3.4 依赖倒转原则3.5 接口隔离原则3.6 合成复用原则3.7 迪米特法则4. Awakening1. 设计模式概述 我们的软件开发技术也包括一…

微刊:做了很多的16S三代测序,文章可以这样写~

三代的黄金时代已经来临&#xff01;在扩增子方面与二代相比其优势明显&#xff1a;1&#xff1a;获得的序列更长&#xff0c;信息量更多更准确&#xff01;2;鉴定高精准&#xff0c;“种”水平物种鉴定中实现了大幅提升。3:PCR扩增无GC偏好性&#xff0c;数据更准确。4:V1-V9全…