首页 理论教育VC++MFC视频教程:模式对话框与非模式对话框

VC++MFC视频教程:模式对话框与非模式对话框

【摘要】:对话框主要分为两个类型,即模式对话框和非模式对话框。当模式对话框弹出后,无法操作它的父窗口或者上一级窗口,直到关闭该对话框为止。图4-3 插入对话框资源用于测试模式对话框图4-4 修改对话框的外观和属性5)选中编辑好的对话框资源,执行View→ClassWizard命令,或按快捷键<Ctrl+W>打开类向导。图4-8 查看运行结果单击“关于”按钮弹出关于对话框,在关闭关于对话框前,主对话框是不可以操作的,这就是模式对话框的特点。

对话框主要分为两个类型,即模式对话框和非模式对话框。当模式对话框弹出后,无法操作它的父窗口或者上一级窗口,直到关闭该对话框为止。例如,大部分软件的“关于…”对话框,都属于模式对话框。当非模式对话框弹出后,不影响对它的父窗口或者上一级窗口的操作。例如,QQ的聊天框或者编辑软件中的文字查找对话框等。

使用MFC应用程序向导,建立一个工程名为“Test”的基于对话框的工程,如图4-1所示。

978-7-111-46378-8-Chapter04-1.jpg

图4-1 新建MFC工程

1)在资源视图中,MFC程序向导生成了一个主对话框模板,在其中添加2个按钮,如图4-2所示。

978-7-111-46378-8-Chapter04-2.jpg

图4-2 为主对话框添加按钮控件

2)对照表4-1修改刚才添加的2个按钮的属性。

表4-1 对话框内的控件ID及属性

978-7-111-46378-8-Chapter04-3.jpg

3)在资源视图中的Dialog资源上单击鼠标右键,在弹出的快捷菜单中,选择“Insert Dialog”命令,插入一个对话框,如图4-3所示。

4)修改对话框的ID、Caption属性和对话框的外观,然后随意添加一些控件,如图4-4所示。

978-7-111-46378-8-Chapter04-4.jpg

图4-3 插入对话框资源用于测试模式对话框

978-7-111-46378-8-Chapter04-5.jpg

图4-4 修改对话框的外观和属性

5)选中编辑好的对话框资源,执行View→ClassWizard命令,或按快捷键<Ctrl+W>打开类向导。(www.chuimin.cn)

类向导自动弹出创建新类的对话框,提示内容是“IDD_ABOUTDLG是一个新的对话框资源,需要创建一个与它关联的类”。选中“Create a new class”单选钮后,再单击“OK”按钮创建新对话框的关联类,如图4-5所示。

978-7-111-46378-8-Chapter04-6.jpg

图4-5 为新插入的对话框资源建立关联类

6)填写类名“CAboutDlg”后单击“OK”按钮,完成对话框类的创建,如图4-6所示。

7)单击“OK”按钮关闭类向导,双击主对话框中的“关于”按钮建立消息映射函数,如图4-7所示。

978-7-111-46378-8-Chapter04-7.jpg

图4-6 填写对话框类的名称

978-7-111-46378-8-Chapter04-8.jpg

图4-7 建立按钮消息映射函数

8)编写OnAbout函数代码。

978-7-111-46378-8-Chapter04-9.jpg

9)编译并运行,测试代码,如图4-8所示。

978-7-111-46378-8-Chapter04-10.jpg

图4-8 查看运行结果

单击“关于”按钮弹出关于对话框,在关闭关于对话框前,主对话框是不可以操作的,这就是模式对话框的特点。