c++ mfc 按钮打开新对话框_MFC编程入门 - 【对话框:创建对话框模板和修改对话框属性】...

本文介绍了如何使用MFC在C++中创建对话框应用程序,特别是涉及创建对话框模板、设置对话框属性,以及通过按钮打开新对话框的操作。详细步骤包括从创建基于对话框的应用程序框架,到编辑对话框资源,再到调整对话框的属性如标题、边框类型等。
摘要由CSDN通过智能技术生成

f5a618fdad02c1e28ed260f4456f983e.png

本节开始为大家讲解偏向应用的知识——创建对话框。

对话框,大家应该很熟悉了,在我们常用的软件中大多都有对话框界面,例如,各种安全卫士的主界面其实就是对话框,知识它做了很多美工方面的工作,将其大大美化了。

★创建对话框主要分为两大步:

第一,创建对话框资源,主要包括创建新的对话框模板、设置对话框属性和为对话框添加各种控件;

第二,生成对话框类,主要包括新建对话框类、添加控件变量和控件的消息处理函数等。

一、创建对话框的应用程序框架

之前创建的HelloWorld程序是单文档应用程序,生成了多种窗口,如果用它来讲创建对话框的话可能有些复杂,对大家单纯理解对话框有点影响,所以这里再创建一个基于对话框的应用程序,用来实现加法运算的功能。

创建步骤同单文档程序大同小异,简单步骤如下:

1、选择菜单项File->New->Project,弹出"New Project"对话框;

2、左侧面板中Installed Templated的Visual C++下选择MFC,中间窗口中选择MFC Application,然后在下面的Name编辑框中键入工程名称,

本例取名“Addition”,在Location编辑框中设置工程的保存路径。点击“OK”。

3、点击"Next"到"Application Type"对话框,在Application Type下选择Dialog based,其他使用默认设置,点击"Finish".

▉我们可以在Solution Explorer视图中看到,此工程的文件要比单文档应用程序少的多,在Class View中主要有三个类:CAboutDlg、CAdditionApp和CAdditionDlg。

▉CAboutDlg是应用程序的“关于”对话框类,CAdditionApp是由CWinApp派生的类,CAdditionDlg是主对话框类,主对话框也就是应用程序运行后显示的主要界面。

注:如果找不到Solution Explorer或Class View等视图,可以菜单项View下找到对应视图选项选择即可。

▉在Resource View视图中可以看到工程Addition的资源树,展开Addition.rc,下面有四个子项:Dialog(对话框)、Icon(图标)、String Table(字符串表)和Version(版本)。然后展开Dialog项,下面有两个对话框模板,其ID分别为:IDD_ABOUTBOXIDD_ADDITION_DIALOG,前者是“关于”对话框的模板,后者是住对话框的模板。

▉ID是资源的唯一标识,本质上是一个无符号整数,一般ID代表的整数值由系统定义,我们无需干涉。

二、对话框模板

可见对于主对话框来说,创建对话框第一步中的创建新的对话框模板已经由系统自动完成了。而如果再添加对话框需要创建新的对话框模板时,需要在Resource View的"Dialog"节点上点击右键,在右键菜单中选择"Insert Dialog",就会生成新的对话框模板,并且会自动分配ID。

在Resource View的资源树中双击某个ID,可在中间区域内显示相应的资源界面。双击IDD_ADDITION_DIALOG时,中间区域就会显示Addition对话框模板。

如下图:

d907cbec206172d15faa27b3b3aa904b.png

三、设置对话框属性

在Addition对话框模板上点击右键,然后右键菜单中选择Properties,则在右侧面板中会显示对话框的属性列表。如下图:

4caddb54280c15a8373b89bee789f247.png


▉在这里对经常使用的几个属性操作简单说明,并对Addition对话框进行属性设置说明。

1、ID:对话框ID,唯一标识对话框资源,可以修改。此处为IDD_ADDITION_DIALOG,我们不修改它。

2、Caption:对话框标题。此处默认为Addition,我们将其修改为“加法计算器”。

3、Border:边框类型。有四种类型:None、Thin、Resizing和Dialog Frame。我们使用默认的Dialog Frame。

4、Maximize:是否使用最大化按钮。我们使用默认的false。

5、Minimize:是否使用最小化按钮。同样我们使用默认的False。

6、Style:对话框类型。有三种类型:Overlapped(重叠窗口)、Popup(弹出式窗口)和Child(子窗口)。弹出式窗口比较常见。我们使用默认的Popup类型。

7、System Menu:是否带有标题栏左上角系统菜单,包括移动、关闭等菜单项。我们使用默认的true。

8、Title Bar:是否带有标题栏。我们使用默认的True。

9、Font(Size):字体类型和字体大小。如果将其修改为非系统字体,则Use System自动改为False。而如果Use System原来为False,将其改为True,则Font(Size)自动设置为系统字体。这里我们使用默认的系统字体。

▉根据以上说明,其实我们只修改了标题属性。这时我们运行此程序后的界面如下:

7405703bf9c23afba104da9f51306b65.png

~~~~~~~~~~~~

我是一名从事了10年开发在退休边缘垂死挣扎的高龄程序员,最近我花了一些时间整理了一个完整的学习C语言、C++的路线,项目源码和工具。对于想学习C/C++的小伙伴而言,学习的氛围和志同道合的伙伴很重要,笔者推荐一个C语言/C++编程爱好者的聚集地→C/C++编程项目开发学习,项目源码,素材笔记等,还有新鲜出炉的学生成绩管理系统等!

欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以一起学习!”

关注我,带你遨游代码世界!

下面这些是C/C++能做的 :

服务器开发工程师、人工智能、云计算工程师、信息安全(白客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等!

最后分享一张C/C++编程学习路线图给爱学习的小伙伴们

fc7db5f802f9b66396eb6e62e7ef25ea.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值