“OK” 和“Cancel”按钮,同时旁边还有一个控件(controls)工具栏,内有各种
常用控件(如下图所 示) 。其中“Aa” 控件为静态文本框,只用来显示一些说明信息,而“ab|” 控件为编辑框,
可以用来输入和输出数据。根据需要可用鼠标将其拖入对话框内,
设计所需要的对话框。下
4
面创建一个简单的对话框: 1) 给新对话框命名: 编译器为刚创建的对话框分配一个默认的名称和ID号,如不想用默 认的名字,可自行命名。将光标放在新对话框内,单击鼠标右键,弹出一个菜单,点 击最后一项“Properties”弹出一个“Dialog Properties”对话框,在“Caption”栏中填 写新创建对话框的名字(如“Dialog 1” ) ,在“ID”栏目中填写新对话框的ID(如, “IDD_MYDIALOG1” ) (对话框的ID都以IDD_开头) 。 2) 将“Aa” 控件拖入对话框内(或鼠标左键单击一下工具栏中的“Aa” ,然后在对话框 内任意位置单击鼠标左键) ,则对话框内出现一个新的“Static”控件,将光标放在该 控件上, 然后单击鼠标右键, 弹出一个菜单, 点击最后一项 “Properties” 弹出一个 “Text Properties” 对话框, 在 “Caption” 栏目内填写欲显示的内容, 如 “This is my first dialog !” , 其ID为“IDC_STATIC”可以不用修改。 3) 创建对话框类:对话框不同于菜单项,每个对话框为一个新的类,因此要想使用(在 某一时刻显示)该对话框,必须首先为新创建的对话框窗创建相应的类。鼠标左键双 4) 击新创建的对话框,弹出一个“Adding a class”对话框,按“OK”钮,弹出另一对话 框, “Dialog ID”栏显示的是刚创建的对话框的ID(若不是,利用下拉条找到刚创建 的对话框的ID) ,中间一栏“Base Class”中显示的是“CDialog”表示将从MFC的对 话框类“CDialog”派生一个新的对话框类,在最上面的“Name”栏中添加该新类的 名称,如“MyDia1” ,同时下面的“File name”一栏自动出现对应该类的原代码文件 名: “MyDia1.cpp” ,按“OK”钮,进入MFC Classwizard界面,右上角“Class name” 栏目中出现“MyDia1” ,按“OK”钮退回到VC++编辑器主界面,查看左侧的文件管 理器窗口Header File 和Source File中分别出现了“MyDia1.h”和“MyDia1.cpp” 文 件,在MyDia1.h文件中有一行 class MyDia1 : public CDialog 表明增加了一个新的名为“MyDia1”的类,冒号(: )表示该类是从MFC基类 “CDialog”中派生出来的。此时文件MyDia1.cpp几乎是空的,表示该对话框空几 乎不做任何事情。至此一个新的对话框及对应的类创建结束。但是重新编译并运行 程序发现该对话框并不出现,因为还没有将该对话框与程序(确切地说是某个事件) 联系起来。 7. 将对话框与Menu Item(或其他事件)联系起来: 为了在运行程序后点击菜单项“Test”中的“Item1”后弹出刚创建的对话框“Dialog 1” , 需完成以下步骤:
1) 在MyfirstCppView.cpp前面的包含文件中加一行:
#include “MyDial.h”
2) 在菜单项“Test”中的“Item1”的消息相应函数On_Test_Item1 ()中添加:
MyDia1 dlg;
dlg.DoModal();
重新编译并运行程序,点击“Test”中的“Item1” ,弹出刚创建的对话框,但该对话框 没有什么实际的功能。
5
8. 通过对话框进行数据的输入和输出 设计一个对话框可以输入两个数据,程序对这两个数据进行某种运算,然后用另一个对 话框将结果显示出来。
1) 按前面方法设计一个新的对话框,如下图所示,名为“Dialog 2” , ID为 “IDD_MYDIA2” 。鼠标右击第一个“Edit”控件,点击“properties” ,在弹出的对 话框中的ID栏中将该控件的ID改为“IDC_NUM1” ,同样方法将第二个“Edit”控 件的ID改为“IDC_NUM2” 。
2) 添加成员变量:进入MFC Classwizard,Class name栏选“MyDia2” ,对