VC++60 第八章 自定义对话框

第八章 自定义对话框

 

上一章我们介绍了系统提供的消息框使用很方便,但是,消息框只能够输出而不能接受用户的输入。例如,要求用户输入登陆号和密码,就需要弹出一个输入对话框,这就需要我们自行设计。本章就介绍如何使用自己定制的对话框。

 

本章要点

如何定制自己的对话框,并把它加入到工程中去?

 

8.1 MyCus.exe程序的界面和功能

本程序的主窗口(图1)就出现三个按钮,按[Input text]按钮弹出如图2所示的对话框。

VC++60 <wbr>第八章 <wbr>自定义对话框

VC++60 <wbr>第八章 <wbr>自定义对话框

 
VC++60 <wbr>第八章 <wbr>自定义对话框

它有一个编辑框,输入信息后关闭,信息就传递到主窗口。再按[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的一个对象,语句为
    CInputDlg m_mydlg;
以后就可以使用函数
    m_mydlg.DoModal();
来打开对话框了。
变量m_mydlg要在主对话框CMyCusDlg的构造函数中声明,而构造函数在头文件MyCusDlg.h中。(在工作区的文件页中)
class CMyCusDlg : public CDialog
{
// Construction
public:
    CMyCusDlg(CWnd* pParent = NULL);    // standard constructor
    CInputDlg m_mydlg;
......

给新对话框的编辑框引进一个字符串型的变量m_DataEdit,以后,在主窗口要使用它时就可用m_mydlg.m_DataEdit来表示了。

最后给两个按钮编写代码,这就十分简单了。输入按钮的代码是
    m_mydlg.DoModal();
显示按钮内的代码是:
    MessageBox(m_mydlg.m_DataEdit,"来自输入对话框的信息",MB_OKCANCEL);

代码完成,编译和运行。

—END—

 

思考和练习
1 为什么要引进变量m_mydlg?为什么不能通过类向导的添加变量功能来做?
2 设计一个程序来演示要求用户输入帐号和密码。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章