📄 chap5_3.htm
字号:
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//使组合框处于未选择状态并使之禁止</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">CComboBox *pComboBox=(CComboBox *)GetDlgItem(IDC_KIND);</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">pComboBox->SetCurSel(-1);</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">pComboBox->EnableWindow(FALSE);</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">//使列表框处于未选择状态并使之禁止</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_ctrlIncome.SetCurSel(-1);</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">m_ctrlIncome.EnableWindow(FALSE);</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">}</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">OnWorkClicked函数判断“在职”单选按钮是否被选中。若该按钮被选中,则使单位情况组中的控件允许,若该按钮未被选中,则说明“下岗”按钮被选中,这时应使控件禁止,清除编辑框中的正文, 并且使组合框和列表框处于未选中状态。</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">在OnWorkClicked函数中主要调用了下列函数:</span></p> <blockquote> <blockquote> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">CWnd::IsDlgButtonChecked函数,用来判断单选按钮或检查框是否被选择,该函数的声明为<br> UINT IsDlgButtonChecked(int nIDButton) const;<br> 参数nIDButton为按钮的ID。若按钮被选择,则函数返回1,否则返回0,若按钮处于不确定状态,则返回值为2。</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">CWnd::GetDlgItem函数,用来获得指向某一控件的指针,该函数的声明为<br> CWnd* GetDlgItem(int nID) const;<br> 参数nID为控件的ID。该函数返回一个指定控件的CWnd对象指针,通过该指针,程序可以对控件进行控制。</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">CWnd::EnableWindow函数,该函数使窗口允许或禁止,禁止的窗口呈灰色显示,不能接收键盘和鼠标的输入。该函数的声明是<br> BOOL EnableWindow( BOOL bEnable = TRUE );<br> 若参数bEnable的值为TRUE,则窗口被允许,若bEnable的值为FALSE,则窗口被禁止。</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">CListBox::SetCurSel和CComboBox::SetCurSel函数功能类似,用来使列表中的某一项被选中,选中的项呈高亮度显示。函数的声明是<br> int SetCurSel(int nSelect);<br> 参数nSelect指定了新选项的索引,第一项的索引值为0,若nSelect的值为-1,那么函数将清除以前的选择,使列表处于未选择状态。</span></p> </blockquote> </blockquote> <p><span style="font-size: 9pt"> </span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">有时,需要将GetDlgItem返回的CWnd指针强制转换成控件对象的指针,以便调用控件对象专有的成员函数对控件进行控制。例如,在程序中GetDlgItem(IDC_KIND)返回的指针被强制转换成CComboBox类型,只有这样,才能调用CComboBox::SetCurSel成员函数。</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">为了对控件进行查询和控制,在程序中采用了两种访问控件的方法。一种方法是直接利用ClassWizard提供的控件对象,例如m_ctrlIncome列表框对象。另一种方法是利用CWnd类提供的一组管理对话框控件的成员函数,例如程序中用到的GetDlgItem和IsDlgButtonChecked。这两种方法是在对话框内访问控件的常用方法,读者都应该掌握。表5.5列出了管理对话框控件的Cwnd成员函数。</span></p> <p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p> <p ALIGN="CENTER"><span style="font-size: 9pt">表5.5 用来管理对话框控件的CWnd成员函数</span></p> <table BORDER="1" CELLSPACING="1" CELLPADDING="1" WIDTH="579"> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">函数名</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">功能</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">CheckDlgButton</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">选中或不选中按钮控件。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">CheckRadioButton</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">选择一个指定的单选按钮并使同组内的其它单选按钮不被选择。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">DlgDirList</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">往一个列表框中添加文件、目录或驱动器的列表。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">DlgDirListComboBox</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">往一个组合框中的列表框内添加文件、目录或驱动器的列表。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">DlgDirSelect</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">从一个列表框中获得当前选择的文件、目录或驱动器。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">DlgDirSelectBomboBox</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">从一个组合框中获得当前选择的文件、目录或驱动器。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetCheckedRadioButton</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回指定的单选按钮组中被选择的单选按钮的ID。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetDlgItem</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回一个指向一给定的控件的临时对象的指针。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetDlgItemInt</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回在一个指定的控件中由正文表示的数字值。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetDlgItemText</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">获得在一个控件内显示的正文。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetNextDlgGroupItem</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回一个指向一组控件内的下一个或上一个控件的临时对象的指针。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetNextDlgTabItem</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回下一个tab顺序的控件的临时对象的指针。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">IsDlgButtonChecked</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回一个按钮控件的状态。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">SendDlgItemMessage</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">把一个消息传送给一个控件。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">SetDlgItemInt</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">将一个整数转换为正文,并将此正文赋给控件。</span></td> </tr> <tr> <td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">SetDlgItemText</span></td> <td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">设置一个控件显示的正文。</span></td> </tr> </table> <p ALIGN="JUSTIFY"><span style="font-size: 9pt">编译并运行Register看看,现在的登录数据对话框已经比较令人满意了。</span></p> <div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="615"> <tr> <td><span style="font-size: 9pt"><a href="chap5_2.htm">上一页</a></span></td> <td><p align="right"><span style="font-size: 9pt"><a href="chap5_4.htm">下一页</a></span></td> </tr> </table> </center></div><font SIZE="5"><hr noshade color="#3973DE" size="1"> </td> <b> </tr></table></center></div></b></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -