⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap5_3.htm

📁 非常好的应用vc++6.0进行相关网络程序开发的教程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </p>
    <p ALIGN="JUSTIFY">清单</font><font FACE="Times New Roman" SIZE="3">5.6 CRegisterDialog</font><font SIZE="3">类的部分源代码</font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">CRegisterDialog::CRegisterDialog(CWnd* pParent /*=NULL*/)</p>
    <p ALIGN="JUSTIFY">: CDialog(CRegisterDialog::IDD, pParent)</p>
    <p ALIGN="JUSTIFY">{</p>
    <p ALIGN="JUSTIFY">//{{AFX_DATA_INIT(CRegisterDialog)</p>
    <p ALIGN="JUSTIFY">. . . . . .</p>
    <p ALIGN="JUSTIFY">//}}AFX_DATA_INIT</p>
    <p></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">m_pParent=pParent;</p>
    <p ALIGN="JUSTIFY">}</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">void CRegisterDialog::OnAdd() </p>
    <p ALIGN="JUSTIFY">{</p>
    <p ALIGN="JUSTIFY">// TODO: Add your control notification handler code here</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p></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"></p>
    <p ALIGN="JUSTIFY">UpdateData(TRUE);</p>
    <p ALIGN="JUSTIFY">//</font><font SIZE="3">检查数据是否有效</font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">if(m_strName==&quot;&quot; || m_nSex&lt;0 || m_nWork&lt;0 || 
    m_strUnit==&quot;&quot; </p>
    <p ALIGN="JUSTIFY">|| m_strKind==&quot;&quot; || m_strIncome==&quot;&quot;)</p>
    <p ALIGN="JUSTIFY">{</p>
    <p ALIGN="JUSTIFY">AfxMessageBox(&quot;</font><font SIZE="3">请输入有效数据</font><font FACE="Times New Roman" SIZE="3">&quot;);</p>
    <p ALIGN="JUSTIFY">return;</p>
    <p ALIGN="JUSTIFY">}</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">CString str;</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"></p>
    <p ALIGN="JUSTIFY">m_pParent-&gt;GetWindowText(str);</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"></p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">姓名</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">str+=m_strName;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">性别</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">str+=m_nSex?&quot;</font><font SIZE="3">女</font><font FACE="Times New Roman" SIZE="3">&quot;:&quot;</font><font SIZE="3">男</font><font FACE="Times New Roman" SIZE="3">&quot;;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">年龄</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">CString str1;</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"></p>
    <p ALIGN="JUSTIFY">str1.Format(&quot;%d&quot;,m_nAge);</p>
    <p ALIGN="JUSTIFY">str+=str1;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">婚否</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">str+=m_bMarried?&quot;</font><font SIZE="3">已婚</font><font FACE="Times New Roman" SIZE="3">&quot;:&quot;</font><font SIZE="3">未婚</font><font FACE="Times New Roman" SIZE="3">&quot;;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">就业状况</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">str+=m_nWork?&quot;</font><font SIZE="3">下岗</font><font FACE="Times New Roman" SIZE="3">&quot;:&quot;</font><font SIZE="3">在职</font><font FACE="Times New Roman" SIZE="3">&quot;;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">工作单位</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">str+=m_strUnit;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">单位性质</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">str+=m_strKind;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">str+=&quot;</font><font SIZE="3">工资收入</font><font FACE="Times New Roman" SIZE="3">:&quot;;</p>
    <p ALIGN="JUSTIFY">str+=m_strIncome;</p>
    <p ALIGN="JUSTIFY">str+=&quot;\r\n&quot;;</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"></p>
    <p ALIGN="JUSTIFY">m_pParent-&gt;SetWindowText(str);</p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY">}</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"></p>
    <p ALIGN="JUSTIFY">CRegisterDialog</font><font SIZE="3">的构造函数有一个参数</font><font FACE="Times New Roman" SIZE="3">pParent</font><font SIZE="3">,该参数是一个指向</font><font FACE="Times New Roman" SIZE="3">CWnd</font><font SIZE="3">对象的指针,用于指定对话框的父窗口或拥有者窗口。在</font><font FACE="Times New Roman" SIZE="3">CRegisterView:: OnEditRegister</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">this</font><font SIZE="3">参数,</font><font FACE="Times New Roman" SIZE="3">this</font><font SIZE="3">指针指向</font><font FACE="Times New Roman" SIZE="3">CRegisterView</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">this</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">m_pParent</font><font SIZE="3">。</font><font FACE="Times New Roman" SIZE="3">OnAdd</font><font SIZE="3">函数可利用</font><font FACE="Times New Roman" SIZE="3">m_pParent</font><font SIZE="3">来访问对话框的拥有者即</font><font FACE="Times New Roman" SIZE="3">CRegisterView</font><font SIZE="3">对象。</font><font FACE="Times New Roman" SIZE="3"></p>
    </font><font SIZE="3"><div align="center"><center><table border="2" cellpadding="2" cellspacing="0" width="90%" bgcolor="#99B7EE">
      <tr>
        <td width="100%">提示:术语父窗口</font><font FACE="Times New Roman" SIZE="3">(Parent)</font><font SIZE="3">是相对于子窗口而言。若某一个窗口拥有一个子窗口</font><font FACE="Times New Roman" SIZE="3">(Child)</font><font SIZE="3">,则该窗口就被称为子窗口的父窗口。子窗口就是具有</font><font FACE="Times New Roman" SIZE="3">WS_CHILD</font><font SIZE="3">风格的窗口,子窗口依赖于父窗口且完全被限制在父窗口内部。拥有者窗口</font><font FACE="Times New Roman" SIZE="3">(owner)</font><font SIZE="3">相对于被拥有者窗口而言。若某一个窗口拥有一个非子窗口,则该窗口被称为拥有者窗口。被拥有窗口</font><font FACE="Times New Roman" SIZE="3">(owned)</font><font SIZE="3">不具有</font><font FACE="Times New Roman" SIZE="3">WS_CHILD</font><font SIZE="3">风格,可在屏幕上任意移动。</font></td>
      </tr>
    </table>
    </center></div><font FACE="Times New Roman" SIZE="3"><p ALIGN="JUSTIFY"></font><font SIZE="3">当用户用鼠标点击</font><font FACE="Times New Roman" SIZE="3">IDC_ADD</font><font SIZE="3">按钮时,该按钮的</font><font FACE="Times New Roman" SIZE="3">BN_CLICKED</font><font SIZE="3">消息处理函数</font><font FACE="Times New Roman" SIZE="3">CRegisterDialog::OnAdd</font><font SIZE="3">将被调用。在</font><font FACE="Times New Roman" SIZE="3">OnAdd</font><font SIZE="3">中,首先调用了</font><font FACE="Times New Roman" SIZE="3">UpdateData(TRUE)</font><font SIZE="3">以把数据从控件传给对话框的数据成员变量。然后,程序要对数据的有效性进行检查,如果输入的数据不完全有效,则会显示一个消息对话框,提示用户输入有效的数据。接下来进行的工作是在视图中输出数据,这部分代码与清单</font><font FACE="Times New Roman" SIZE="3">5.4</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"></p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3">接下来让我们来解决第二个问题。解决该问题的关键在于当用户点击“在职”或“下岗”单选按钮时,程序要对收到的</font><font FACE="Times New Roman" SIZE="3">BN_CLICKED</font><font SIZE="3">消息作出响应。有些读者可能会想到为两个单选按钮分别创建</font><font FACE="Times New Roman" SIZE="3">BN_CLICKED</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">ON_CONTROL_RANGE</font><font SIZE="3">可以避免这种麻烦,该映射宏把多个

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -