创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板、设置对话框属性和为对话框添加各种控件;第二,生成对话框类,主要包括新建对话框类、添加控件变量和控件的消息处理函数等。在本节中先讲讲怎样创建对话框模板和设置对话框属性。本章只是创建基本的对话框,若想样式、图标更丰富一些可借助MFC扩展类库Xtreme Toolkit Pro。是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和Task Panel。

创建基于对话框的应用程序框架

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

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是主对话框类,主对话框也就是此应用程序运行后显示的主要界面。

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

在Resource View视图中可以看到工程Addition的资源树,展开Addition.rc,下面有四个子项:Dialog(对话框)、Icon(图标)、String Table(字符串表)和Version(版本)。然后展开Dialog项,下面有两个对话框模板,其ID分别为:IDD_ABOUTBOX和IDD_ADDITION_DIALOG,前者是“关于”对话框的模板,后者是主对话框的模板。ID是资源的唯一标识,本质上是一个无符号整数,一般ID代表的整数值由系统定义,我们无需干涉。

对话框模板

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

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

设置对话框属性

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

鸡啄米在这里对经常使用的几个属性作简单说明,并对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)自动设置为系统字体。这里我们使用默认的系统字体。

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

这一讲就先讲到这里了,对于创建对话框第一步中的为对话框添加各种控件下一讲为大家演示。

今天的内容就是这些了,点击下方“了解更多”获取更加详细的教程!

vs2013我建了两个对话框 选择主对话框_VS/MFC编程教程:如何创建对话框模板和修改对话框属性...相关推荐

  1. edit控件自动换行 mfc_VS2010/MFC编程入门:如何创建对话框模板和修改对话框属性?...

    创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等.在本节中先 ...

  2. 对话框:创建对话框模板和修改对话框属性

    创建基于对话框 选择菜单项File->New->Project,弹出"New Project"对话框. 左侧面板中Installed Templated的Visual ...

  3. VS2019/MFC编程入门之对话框:向导对话框的创建及显示

    上一讲讲了属性页对话框和相关的两个类CPropertyPage类和CPropertySheet类,对使用属性页对话框做准备.本节将为大家演示如何创建向导对话框. 仍然以前面的"加法计算器&q ...

  4. Heckman两步法 | 样本选择模型 处理效应模型

    这期推送简单介绍一下样本选择模型和处理效应模型,其中样本选择模型是一般意义上的Heckman两步法,后者则借鉴了Heckman两步法的构建思想,但又不完全等同于前者.模型介绍之后,将利用help文件中 ...

  5. 自助建站之PageAdmin、凡科建站、Wordpress如何选择?

    国内互联网发展这么多年,网站建设行业的技术发展已经很成熟,以前做网站只能找专业网站建设公司,到现在的自助建站,技术壁垒几乎不存在,自助建站是现在,也是未来的发展趋势. 自助建站分为在线建站平台和独立网 ...

  6. jquery 文件上传 触发两次_点击三次input按钮,前两次不选择任何文件,第三次选择一个文件,结果上传了3个文件,即发生了三次请求...

    点击三次input按钮,前两次不选择任何文件,第三次选择一个文件,结果页面上出现了3个文件,也就是上传了3个文件 我点击input,不选择任何文件,然后取消文件选择器的窗口,然后第二次次点击input ...

  7. mysql除了两列其他都选_从MySQL的两列中选择不同的名称,然后在单列中显示结果...

    为此,请使用UNION.让我们首先创建一个表-mysql> create table DemoTable ( Name1 varchar(100), Name2 varchar(100) ); ...

  8. selenium webdriver 使用webDriver点击ENTER建的两种方法

    使用webDriver点击ENTER建的两种方法:. First: driver.findElement(By.id("idValue")).sendKeys(Keys.ENTER ...

  9. Numerical Optimization和Convex optimization 两本书的选择?

    Numerical Optimization和Convex optimization 两本书的选择? - 知乎https://www.zhihu.com/question/49689245 Numer ...

最新文章

  1. STM32 基础系列教程 34 - Lwip_tcp_server
  2. 如何定位“Operating system error 32(failed to retrieve text for this error. Reason: 15105)”错误中被占用的文件...
  3. Docker Kubernetes 环境搭建
  4. ifconfig没有ip地址_虚拟机创建后该如何获取IP地址并访问互联网实用教程
  5. jpa 多字段like_Spring Data JPA 如何进行模糊查询(LIKE) ?
  6. 副业接私活必备的 10 个开源项目!
  7. csgo降低延迟指令_ILP——指令级并行
  8. 以下不正确的C语言标识符是( ),以下不正确的C语言标识符是 _____。
  9. 在浪潮服务器NF8460M4上用u盘安装centos8.5报设置基础软件仓库时出错
  10. blender摄像机怎么绕物体旋转
  11. 工具系列之OneNote--关于团队的知识管理平台
  12. Jmeter的元件使用介绍:前置处理器详解
  13. 一套完整的硬件电路设计该怎么做?
  14. Python 真的好学吗?
  15. 旋转拖动验证码解决方案
  16. jenkins docker 编译verify出现crash的问题
  17. 滤波器原理及其作用计算机网络,滤波器的种类/作用/原理
  18. Javascript面向对象深入-两小时实现坦克大战(含源码+工具+具体流程)
  19. Halcon之感兴趣的区域
  20. node.js 静态属性_如何使用静态站点和Node.js开发和部署第一个全栈式Web应用程序

热门文章

  1. 【带你玩转主题模型Topic Model】—— 之 利用sklearn 实现Latetnt Dirichlet Allocation(LDA)主题模型
  2. python csv模块 一次读多行_python中csv模块读取reader只能读取一次
  3. 沉痛悼念 pip search 一路走好
  4. NC:港大张彤团队-基于组学的耐药基因风险评估框架
  5. EM: 生而为菌,自强不息-嗜酸杆菌在重金属污染土壤中的生态适应性机制
  6. 金秋十月正当时,未知君招人啦!
  7. Cell:绝对异养型生物改造成完全自养型生物
  8. 微生物组-扩增子16S分析研讨会(2020.1)
  9. 求求你使用Tab键好吗
  10. android switcher控件,Android ViewSwitcher 的功能与用法