第八章 自定义对话框
上一章我们介绍了系统提供的消息框使用很方便,但是,消息框只能够输出而不能接受用户的输入。例如,要求用户输入登陆号和密码,就需要弹出一个输入对话框,这就需要我们自行设计。本章就介绍如何使用自己定制的对话框。
本章要点
如何定制自己的对话框,并把它加入到工程中去?
8.1 MyCus.exe程序的界面和功能
本程序的主窗口(图1)就出现三个按钮,按[Input text]按钮弹出如图2所示的对话框。
它有一个编辑框,输入信息后关闭,信息就传递到主窗口。再按[Display it]就能够在消息框中显示该信息。
8.2 设计MyCus.exe程序的界面和定制对话框
在应用程序向导中选MFC标准的对话框模式创建D:\myVC\CH08\MyCus.exe。
设计主窗口。就三个按钮,[Input text]按钮的ID=IDC_INPUT_BUTTON,[Display it]按钮的ID=IDC_DISPLAY_BUTTON。主窗口的标题取"MyCus",ID=IDD_MYCUS_DIALOG。
定制一个输入对话框
在工作区的资源页用右键点Dialog,在弹出菜单中选"Insert Dialog",这就添加了一个新的对话框,并打开编辑窗口和一个默认的对话框框架。保留两个默认的按钮,并把其中的静态文本的标题改为提示语“任意输入一行文字”;如图chap08-02的布局,添加一个编辑框,设置ID =IDC_DATA_EDIT。新对话框的ID=IDD_INPUT_DIALOG,标题为“输入对话框”。
为定制对话框创建类并加入到工程中
在[查看]菜单打开类向导,向导会自动打开“添加类”的对话框,从中选择"Create a new class"创建新类;在下一步的输入对话框中键入新类的名,我们选为"CInputDlg",基类就是默认的CDialog,代码文件名会自动确定的。VC的类名的首字母都是大写的C,第二个字母往往也大写。按[确定]后就自动生产新类的两个文件InputDlg.cpp和InputDlg.h,在工作区的文件页你可以看到它,同时,在工作区的“类视图”页上也可以看到新类CInputDlg这一项。
8.3 编写代码
1 为定制对话框引进变量
为了使用这新对话框,我们需要为它定义一个变量。这变量就是类CInputDlg的一个对象,语句为
以后就可以使用函数
来打开对话框了。
变量m_mydlg要在主对话框CMyCusDlg的构造函数中声明,而构造函数在头文件MyCusDlg.h中。(在工作区的文件页中)
class CMyCusDlg : public CDialog
{
// Construction
public:
......
给新对话框的编辑框引进一个字符串型的变量m_DataEdit,以后,在主窗口要使用它时就可用m_mydlg.m_DataEdit来表示了。
最后给两个按钮编写代码,这就十分简单了。输入按钮的代码是
显示按钮内的代码是:
代码完成,编译和运行。
—END—
思考和练习
1 为什么要引进变量m_mydlg?为什么不能通过类向导的添加变量功能来做?
2 设计一个程序来演示要求用户输入帐号和密码。