在对话框资源模板上点击鼠标右键,选择快捷菜单栏上中的ClassWizard…菜单项,这时会弹出MFCClassWizard对话框,并同时弹出一个AddingaClass对话框指出IDD_MODE_DIALOG是一个新的资源,可以为他创建一个新的类,也可以为它选择一个存在的类,如图所示
这里我们选择添加一个新类选中Create a new class单选按钮并单击OK按钮,系统会弹出一个New Class对话框,在Class Information的Name编辑框内输入CModeDialog作为新类名,其他设置不做改变,单击OK按钮,关闭对话框,并单击MFC ClassWizard的对话框OK按钮,就可在项目工作区的ClassView标签中看到刚刚添加的CmodeDialog类了。
2.1.4 添加消息处理函数
下面为CmodeDialog类添加对话框初始化信息WM_INIDIALOG,使对话框打开后在静态文本控件IDC_OUTPUT_TEXT中显示“这是一个模式对话框”。
打开Message Maps标签,在Class name组合框的下拉列表中选中CmodeDialog类,然后再Messages列表框中选中WM_INIDIALOG消息,单击右边的Add Function按钮,就会在下面的Member Functions列表中看到一个新添加了一个OnInitDialog消息处理函数。单击右面的Edit Code按钮,跳到OnInitDialog函数处,在OnInitDialog函数中添加初始化代码
代码中GerDlgItem函数用来得到静态文本控件IDC_OUTPUT_TEXT的窗口指针,并利用这个指针调用SetWindowText函数,在静态文本控件中输出信息。
2.1.5 定义对话框对象
我们已经定义好了CmodeDialog类和消息处理函数,下面定义一个CmodeDialog对象首先添加一个菜单,并在菜单消息处理函数中操作CmodeDialog对象。
在“查看”弹出式菜单添加一个菜单项,资源标识号为ID_MODE_DIALOG,标题为模式对话框,如图所示
打开ClassWizard并选中Message Maps标签,在Class name组合框的下拉列表中选中COMMAND消息,单击右边的Add Function按钮,会弹出一个Add Member Function对话框,如图所示
用户可以在这里修改函数名称,这里保持默认的函数名不变,单击OK按钮,就会在ClassWizard对话框的Member Functions列表框中看到新添加了一个OnModeDialog消息处理函数。单击右边的Edit Code按钮,跳到CmodeDialog类的头文件,如下所示
#include “ModeDialog.h”
在OnModeDialog函数处添加代码,如下
在上述代码中,首先定义了一个CmodeDialog类对象ModeDlg,然后调用DoModal函数显示模式对话框。
2.1.6 编译并运行程序
如图所示