📄 chap5_3.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>5.3 对话框类的设计</title>
</head>
<body link="#3973DE" alink="#3973DE">
<font SIZE="5"><b><div align="center"><center>
<table border="0" width="615" cellspacing="0" cellpadding="0">
<tr>
</b><td><div align="center"><center><table border="0" width="615" cellpadding="0" cellspacing="0" height="20">
<tr>
<td width="377" bgcolor="#15397D" height="20"></td>
<td width="238" bgcolor="#000000" height="20"><p align="right"></font><span style="text-decoration: none"><a href="../../index.htm"><font color="#FFFFFF">电脑报Visual
C++网络教程</font></a></span></td>
</tr>
</table>
</center></div><font FACE="Times New Roman" SIZE="3"><b><p ALIGN="CENTER"></b></font><font color="#3973DE" FACE="Times New Roman" size="4">5.3 </font><font color="#3973DE" size="4">对话框类的设计</font><font FACE="Times New Roman" size="4"></p>
</font><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY"></font><font SIZE="3">完成对话框模板的设计后,就需要设计一个对话框类以实现对话框的功能。设计对话框类主要包括下面几步:</p>
<blockquote>
<p ALIGN="JUSTIFY">创建对话框类。该类应从<font FACE="Times New Roman" SIZE="3">CDialog</font>类派生。</p>
<p ALIGN="JUSTIFY">为对话框类加入与控件相对应的成员变量。</p>
<p ALIGN="JUSTIFY">为对话框进行初始化工作。</p>
<p ALIGN="JUSTIFY">增加对控件通知消息的处理</p>
</font><font FACE="Times New Roman" SIZE="3">
</blockquote>
<p></font><b><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font></b><font color="#3973DE" FACE="Times New Roman" SIZE="3">5.3.1</font><font SIZE="3" color="#3973DE">对话框类的创建</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">利用</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">,程序员可以十分方便的创建</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">窗口类的派生类,对话框类也不例外。请读者按以下几步操作:</p>
<blockquote>
<blockquote>
<p ALIGN="JUSTIFY">打开</font><font FACE="Times New Roman" SIZE="3">IDD_REGISTER</font><font SIZE="3">对话框模板,然后按</font><font FACE="Times New Roman" SIZE="3">Ctrl+W</font><font SIZE="3">进入</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">。</p>
<p ALIGN="JUSTIFY">进入</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">后,</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">发现</font><font FACE="Times New Roman" SIZE="3">IDD_REGISTER</font><font SIZE="3">是一个新的对话框模板,于是它会询问是否要为</font><font FACE="Times New Roman" SIZE="3">IDD_REGISTER</font><font SIZE="3">创建一个对话框类。按</font><font FACE="Times New Roman" SIZE="3">OK</font><font SIZE="3">键确认。</p>
<p ALIGN="JUSTIFY">如图</font><font FACE="Times New Roman" SIZE="3">5.6</font><font SIZE="3">在</font><font FACE="Times New Roman" SIZE="3">Create New Class</font><font SIZE="3">对话框中,在</font><font FACE="Times New Roman" SIZE="3">Name</font><font SIZE="3">栏中输入</font><font FACE="Times New Roman" SIZE="3">CRegisterDialog</font><font SIZE="3">,在</font><font FACE="Times New Roman" SIZE="3">Base class</font><font SIZE="3">栏中选择</font><font FACE="Times New Roman" SIZE="3">CDialog</font><font SIZE="3">,在</font><font FACE="Times New Roman" SIZE="3">Dialog ID</font><font SIZE="3">栏中选择</font><font FACE="Times New Roman" SIZE="3">IDD_REGISTER</font><font SIZE="3">。按</font><font FACE="Times New Roman" SIZE="3">Create</font><font SIZE="3">按钮后,对话框类</font><font FACE="Times New Roman" SIZE="3">CRegisterDialog</font><font SIZE="3">即被创建。</p>
</font><font FACE="Times New Roman" SIZE="3">
</blockquote>
</blockquote>
<p ALIGN="center"></font><img src="T5_6.gif" alt="T5_6.tif (248014 bytes)" WIDTH="534" HEIGHT="443"><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="center"></font><font SIZE="3">图</font><font FACE="Times New Roman" SIZE="3">5.6
Create New Class</font><font SIZE="3">对话框</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">ClassWizard</font><font SIZE="3">自动使类</font><font FACE="Times New Roman" SIZE="3">CRegesterDialog</font><font SIZE="3">与</font><font FACE="Times New Roman" SIZE="3">IDD_REGISTER</font><font SIZE="3">模板联系起来。</font><font FACE="Times New Roman" SIZE="3"></p>
</font><font SIZE="3"><b><div align="center"><center><table border="2" cellpadding="2" cellspacing="0" width="90%" bgcolor="#BDD0F4">
<tr>
<td width="100%"></b>提示:只要想创建的类是某一</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">窗口类的派生类,一般都可以利用</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">来自动完成创建。创建的一般方法是:打开</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">,选择</font><font FACE="Times New Roman" SIZE="3">Add Class->New</font><font SIZE="3">,然后在</font><font FACE="Times New Roman" SIZE="3">Create New Class</font><font SIZE="3">对话框中输入新类的类名,选择其</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">基类,如果是对话框类,则还要选择对话框的</font><font FACE="Times New Roman" SIZE="3">ID</font><font SIZE="3">。</font></td>
</tr>
</table>
</center></div><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY"></font><font color="#3973DE" FACE="Times New Roman" SIZE="3">5.3.2</font><font SIZE="3" color="#3973DE">为对话框类加入成员变量</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3"><font SIZE="3" color="#3973DE"> </font></font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">
对话框的主要功能是输出和输入数据,例子中的登录数据对话框的任务就是输入数据。对话框需要有一组成员变量来存储数据。在对话框中,控件用来表示或输入数据,因此,存储数据的成员变量应该与控件相对应。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">与控件对应的成员变量即可以是一个数据,也可以是一个控件对象,这将由具体需要来确定。例如,可以为一个编辑框控件指定一个数据变量,这样就可以很方便地取得或设置编辑框控件所代表的数据,如果想对编辑框控件进行控制,则应该为编辑框指定一个</font><font FACE="Times New Roman" SIZE="3">CEdit</font><font SIZE="3">对象,通过</font><font FACE="Times New Roman" SIZE="3">CEdit</font><font SIZE="3">对象,程序员可以控制控件的行为。需要指出的是,不同类的控件对应的数据变量的类型往往是不一样的,而且一个控件对应的数据变量的类型也可能有多种。表</font><font FACE="Times New Roman" SIZE="3">5.3</font><font SIZE="3">说明了控件的数据变量的类型。</font><font FACE="Times New Roman" SIZE="3"></p>
</font><font SIZE="3"><p ALIGN="CENTER">表</font><font FACE="Times New Roman" SIZE="3">5.3</font></p>
<table BORDER="1" CELLSPACING="1" CELLPADDING="1" WIDTH="579">
<tr>
<td WIDTH="42%"><font SIZE="3">控件</font></td>
<td WIDTH="58%"><font SIZE="3">数据变量的类型</font></td>
</tr>
<tr>
<td WIDTH="42%"><font SIZE="3">编辑框</font></td>
<td WIDTH="58%"><font FACE="Times New Roman" SIZE="2">CString, int, UINT, long, DWORD,
float, double, short, BOOL, COleDateTime, COleCurrency</font></td>
</tr>
<tr>
<td WIDTH="42%"><font SIZE="3">普通检查框</font></td>
<td WIDTH="58%"><font FACE="Times New Roman" SIZE="3">BOOL</font><font SIZE="3">(真表示被选中,假表示未选中)</font></td>
</tr>
<tr>
<td WIDTH="42%"><font SIZE="3">三态检查框</font></td>
<td WIDTH="58%"><font FACE="Times New Roman" SIZE="3">int</font><font SIZE="3">(</font><font FACE="Times New Roman" SIZE="3">0</font><font SIZE="3">表示未选中,</font><font FACE="Times New Roman" SIZE="3">1</font><font SIZE="3">表示选中,</font><font FACE="Times New Roman" SIZE="3">2</font><font SIZE="3">表示不确定状态)</font></td>
</tr>
<tr>
<td WIDTH="42%"><font SIZE="3">单选按钮(组中的第一个按钮)</font></td>
<td WIDTH="58%"><font FACE="Times New Roman" SIZE="3">int</font><font SIZE="3">(</font><font FACE="Times New Roman" SIZE="3">0</font><font SIZE="3">表示选择了组中第一个单选按钮,</font><font FACE="Times New Roman" SIZE="3">1</font><font SIZE="3">表示选择了第二个</font><font FACE="Times New Roman" SIZE="3">...</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">表示没有一个被选中)</font></td>
</tr>
<tr>
<td WIDTH="42%"><font SIZE="3">不排序的列表框</font></td>
<td WIDTH="58%"><font FACE="Times New Roman" SIZE="3">CString</font><font SIZE="3">(为空则表示没有一个列表项被选中)</font><font FACE="Times New Roman" SIZE="3">, <p>int</font><font SIZE="3">(</font><font FACE="Times New Roman" SIZE="3">0</font><font SIZE="3">表示选择了第一项,</font><font FACE="Times New Roman" SIZE="3">1</font><font SIZE="3">表示选了第二项,</font><font FACE="Times New Roman" SIZE="3">-1</font><font SIZE="3">表示没有一项被选中)</font></td>
</tr>
<tr>
<td WIDTH="42%"><font SIZE="3">下拉式组合框</font></td>
<td WIDTH="58%"><font FACE="Times New Roman" SIZE="3">CString, int</font><font SIZE="3">(含义同上)</font></td>
</tr>
<tr>
<td WIDTH="42%"><font SIZE="3">其它列表框和组合框</font></td>
<td WIDTH="58%"><font FACE="Times New Roman" SIZE="3">CString</font><font SIZE="3">(含义同上)</font></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -