目录
1. 建立 MFC 应用程序.................................................................................................................1
1.1 新建工程........................................................................................................ 1
1.2 选择应用程序的类型..................................................................................... 2
2. 建立单文档应用程序,并在其中调用对话框..............................................................2
2.1 建立单文档应用程序..................................................................................... 2
2.2 查看工程资源................................................................................................ 2
2.3 插入对话框资源............................................................................................ 3
2.4 布置对话框界面............................................................................................ 4
2.5 创建对话框类................................................................................................ 5
2.6 调用对话框.................................................................................................... 6
2.6.1 增加菜单项......................................................................................... 6
2.6.2 通过菜单项调用对话框..................................................................... 8
3. 建立基于对话框的应用程序,并调用别的对话框。..............................................10
3.1 建立基于对话框的应用程序...................................................................... 10
3.2 插入别的对话框资源.................................................................................. 10
3.3 调用别的对话框.......................................................................................... 11
3.3.1 添加消息映射函数........................................................................... 11
3.3.2 添加消息映射函数体代码..........................................................................11
1. 建立 MFC 应用程序
1.1 新建工程
打开 VC 应用程序,在“文件”菜单中选择“新建”命令,在弹出的新建对
话框中选择“工程”标签,然后选中“MFC AppWizard(exe)”,再在对话框的右
侧输出工程名(不要输入中文名称),选择工程存放的位置。如图 1 所示。
输入工程名
工程标签
工程选择
位置选择
图 1 工程建立
1.2 选择应用程序的类型
应用程序的类型有“单文档”、“多文档”、“基本对话框”三种,若需要有菜
单,通过菜单打开对话框,可选择“单文档”,若不需要菜单,程序运行时直接
出现对话框,其它的对话框可通过第一个对话框调用,则可选择“基本对话框”,
对于“多文档”应用程序暂不要求掌握。如图 2 所示。
选择应用
程序类型
图 2 应用程序类型选择
2. 建立单文档应用程序,并在其中调用对话框
2.1 建立单文档应用程序
在上一步骤中选择应用程序的类型为“单个文档”,可直接单击“完成”按
钮,也可依次单击“下一步”查看程序建立过程中需要修改的项目(一般不作修
改),在最后一步(step6)可看到 MFC 应用程序向导为本程序所建立的四个类。
如图 3 所示。
MFC 向 导 为 本 程
序提供的四个类
依次选择每个类,可
在 此 看 到 每 个 类 的
类名,基类名,以及
该 类 定 义 所 在 的 头
文件名,该类实现所
在的源程序名。
图 3 单文档程序中系统建立的四个类
2.2 查看工程资源
在上一步骤中单击完成后,即建立了工程名为 mypro 的工程。可在该工程中
单击左侧的“ResourceView”打开资源视图,看到 MFC 向导为该程序提供的一
些资源。
单击每种资源名称前面的”+”,
可看到在该工程中该种类型的
已有资源的 ID,双击可在右侧
的资源编辑窗口打开该种资源,
单击此,打
开资源视图
资源编辑器
图 4 单文档应用程序中的资源视图
2.3 插入对话框资源
若想在单文档应用程序中,通过单击菜单项来打开一个对话框,首先应建立
该对话框的资源(即外观,显示等)。
右击“ResourceView”中的“Dialog”项,在弹出的快捷菜单中选择“Insert
Dialog”,也可在“插入”菜单中选择“资源”菜单项,打开“插入资源”对话
框。如图 5 所示。
在其 中选 择 “Dialog ” 项, 单击 “新建 ” 按钮 ,即 可插 入默 认 ID 号 为
IDD_DIALOG1 的对话框,在右侧的资源编辑器窗口可看到该对话框,默认有
“OK”和“Cancel”两个按钮。如图 6 所示。
选择资源类别
单击“新建”
按钮
图 5 “插入资源”对话框
默 认 ID 为
IDD_DIALOG1
新插入的对话框
资源
图 6 新插入的对话框资源
对话框资源插入后,可修改对话框的一些外观属性,如标题(Caption)、字体
等,右击对话框资源的空白处,在弹出的快捷菜单中选择“属性”(Properties),
可打开对话框资源的属性对话框,在里面可设置对话框的属性。如图 7 所示。
图 7 设置对话框资源的属性
2.4 布置对话框界面
对话框资源插入后,即可在该对话框上布置各种所需的控件(在“控件”
工具箱里,用鼠标拖拉到对话框资源上),并可通过“编排”菜单的各菜单命令
或“Dialog”工具条调整各控件的大小、位置、对齐方式等,还可单击“Dialog”
工具条上第一个按钮“test”按钮,看到对话框运行时的界面(与后台代码无关,
仅调试界面)。如图 8 所示。对话框中各控件的外观属性设置,也可先选中该控
件资源,在右击弹出的快捷菜单中选择“属性”命令,进行相应的设置。
“编排”
菜单
“test”按钮
“控件”工
具箱
“ Dialog ”
工具条
图 8 布置对话框资源上的控件资源
2.5 创建对话框类
对话框资源建立后,不能直接运行,因为运行时出现的对话框是一个实际
存在的一个对话框对象,所以应先建立这种类型的对话框类。
在对话框空白处右击的快捷菜单中选择“建立类向导”或在“查看”菜单中
选择“建立类向导”命令,可打开“MFC ClassWizard”对话框,首先会有一个
小的“Adding a Class”对话框弹出,询问是否为该对话框建立一个新类,单击
“OK”按钮。如图 9 所示。
单击“OK”
按钮
默认建立一
个新类
图 9 建立一个新类
在弹出的“New Class”对话框中输入该新对话框类的名称,如 CFirstDlg(MFC
中类的取名首字母最好是 C,表示是一个类;若由多个单词构成,每个单词的首
字母都大写;若是对话框类,最后加上 Dialog 的简写 Dlg,表示这是一个对话框
类),在下一行的“File Name”中可以看到 MFC 向导提供的该类的实现文件名。
如图 10 所示。其中的基类名与对话框的 ID 一般不要修改。
类名
基类名
类的实现文件名,
类的定义应该在同
名的.h 文件中,
注意:类名和类定
义所在的头文件名
的区别。
对话框的 ID
名称输入好后,即可单击“OK”按钮完成添加对话框类的过程,在“MFC
ClassWizard”对话框的“Class name”栏中可看到新建的类。如图 11 所示。
图 10 设置新类的名称
新建的对话框类
确认后单击“确按钮定”
图 11 “MFC ClassWizard”对话框
2.6 调用对话框
对话框类建立好后,通过创建该类的对象,调用相应的成员函数,可以显示
该类型对话框的对象。
2.6.1 增加菜单项
在单文档应用程序中,对话框的调用一般通过单文档应用程序主框架中的菜
单来实现的,所以应先增加调用的菜单项。
在应用程序左侧的“ResourceView”中单击“Menu”前面的“+”号,看到
程序的主菜单的 ID 号,双击,在右侧的资源编辑器窗口中可看到该菜单的资源
外观。可在资源外观中双击菜单标题处的虚线矩形框或菜单标题下菜单项的虚线
矩形框添加相应的菜单标题与菜单项,(注:菜单标题不需响应单击事件,所以
没有 ID,而菜单项需要响应单击事件,为了区分是哪个菜单项,一般菜单项都
有 ID)。如图 12,图 13,图 14,图 15 所示。
双 击 该 处 添 加
相应菜单标题
主菜单资源
主菜单的 ID
双 击 该 处 添 加
相应菜单项
图 12 菜单资源的添加
菜单标题名的输入,若要输入组合
键,在相应字母前加&(英文状态下)
图 13 菜单标题的添加
菜单项 ID 的设置
若该项被选中,表示设置
一个菜单项间的分隔符
菜单项名的输入
图 14 菜单项的添加
添加菜单标题与菜
单项后的菜单资源
图 15 菜单资源修改后的视图
2.6.2 通过菜单项调用对话框
通过菜单项调用对话框,即希望单击该菜单项后,能够出现的结果是显示对
话框,所以需要做菜单项的单击消息映射函数,函数体代码实现的功能是创建一
个对话框对象,然后显示该对象。
1) 添加消息映射函数
在菜单资源中右击弹出的快捷菜单中选择“建立类向导”或在“查看”菜单
中选择“建立类向导”,打开“MFC ClassWizard”对话框,其中 Class name 中选
择“CMainFrame”,(因为菜单在主框架中,做菜单项的消息映射函数,实际上
是在主框架类中添加一个成员函数,而该成员函数与该菜单项的单击消息联系在
一起),左侧的“Object IDs”中选择菜单项的 ID,右侧的“Messages”中选择
“COMMAND”消息,然后单击“Add Function”按钮,在下方的“Message
Functions”中可以看到一个消息映射函数,此时可以单击“Edit Code”按钮进入
代码编辑编辑窗口,或直接单击“确定”按钮(一定要执行这两步中任一步骤,
否则该消息映射成员函数的框架并没有加到相应类中)。如图 16 所示。
菜单项 ID 的选择
类名的选择
Add Funtion 按钮
消息的选择
编辑代码
消息映射函数
图 16 消息映射函数的添加
2)添加菜单项的消息映射函数体代码。
在上一步骤中单击“Edit Code”按钮,或在程序左侧的“File View”中双击
“Source Files”下“MainFrm.cpp”,打开该源代码,添加相应的代码,如图 17
所示。