对话框概述
- 对话框是以CDialog类的一个对象的方式来实现的。CDialog类是由CWnd类派生的,其核心也是一个窗口。而对话框上的各种控件,它们也是窗口,只不过是对话框窗口的子窗口,其对应类也是CWnd的派生类
- CDialog类从CWnd类派生而来,所以它继承了CWnd类的成员函数,具有CWnd类的基本功能
- CDialog类本身也有自己的成员函数,如:OnOK()、OnCancel()、EndDialog()等
对话框种类
1. 模式对话框
a) 在用户关闭它之后才能返回到父窗口的对话框。在未关闭对话框之前,程序不能继续执行。消息框便是最简单的模式对话框。模式对话框经常用于交换一些重要信息,强制用户完成所要求的动作
2. 无模式对话框
a) 不禁止父窗口,即无论无模式对话框是否关闭,应用程序都可以继续执行。Word中的“查找/替换”窗口是典型的无模式对话框
对话框的组成
1. 在使用AppWizard向导创建的框架程序中,每一个对话框都具有二个组成元素:
a) 一个用来标识对话框并说明对话框的控件及其在对话框窗口中的位置的资源。
b) 一个由MFC库的CDialog类派生的C++类,这个类提供了对对话框的管理。
对话框的创建步骤
1. 创建对话框的一般过程可具体分为四个步骤:
a) 使用对话框编辑器设计对话框的外观布局,创建对话框模板资源。
b) 使用ClassWizard创建新的对话框类。
c) 使用ClassWizard进行消息映射,即将对话框资源的控件与对话框类中的消息处理函数联系起来。
d) 使用ClassWizard向对话框类中加入与控件相联的数据成员,并为控件指定对话数据交换和对话数据验证(DDX/DDV)。
资源的分类
- 快捷键列表(Accelerator):一系列组合键的集合,被应用程序用来引发一个动作。该列表一般与菜单命令相关联,用来代替鼠标操作。
- 对话框(Dialog)
- 图标(Icon):应用程序显示在Windows桌面上的位图,它同时有32x32像素和16x16像素两种规格。
- 菜单(Menu)
- 字串表(String Table):全局字符串或其他标识符。
- 工具栏按钮(Toolbar):工具栏外观是以一系列具有相同尺寸的位图组成的,它通常与一些菜单命令相对应,用以提高用户的工作效率。
- 版本信息(Version):应用程序的版本、用户注册码等信息。
- 鼠标指针、HTML等,也可以自己添加新的资源类别。
资源标识符
与程序中的标识符命名规则一样,区别的是资源标识符不区分大小写。
建议用不同的前缀代表不同类型的资源
资源编辑器
- 打开Insert->Resource菜单项,出现Insert Resource对话框(快捷键Ctrl+R),在Resource Type框中选择一个资源类型,