📄 chap6_1.htm
字号:
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">HBITMAP GetBitmap( )
const;</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">获取由SetBitmap指定的位图。</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">HICON SetIcon( HICON hIcon
);</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">指定要显示的图标。</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">HICON GetIcon( ) const;</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">获取由SetIcon指定的图标。</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">HCURSOR SetCursor( HCURSOR
hCursor );</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">指定要显示的光标图片。</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">HCURSOR GetCursor( );</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">获取由SetCursor指定的光标。</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">HENHMETAFILE
SetEnhMetaFile( HENHMETAFILE hMetaFile );</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">指定要显示的增强图元文件。</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">HENHMETAFILE
GetEnhMetaFile( ) const;</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">获取由SetEnhMetaFile指定的图元文件。</span></td>
</tr>
</table>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> 静态控件较简单,故这里就不举例说明了。</span></p>
<b><p ALIGN="JUSTIFY"></b><span style="font-size: 9pt"><font color="#3973DE">6.1.3
按钮控件</font></span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> 按钮是指可以响应鼠标点击的小矩形子窗口。按钮控件包括命令按钮(Pushbutton)、检查框(Check
Box)、单选按钮(Radio Button)、组框(Group Box)和自绘式按钮(Owner-draw Button)。命令按钮的作用是对用户的鼠标单击作出反应并触发相应的事件,在按钮中既可以显示正文,也可以显示位图。选择框控件可作为一种选择标记,可以有选中、不选中和不确定三种状态。单选按钮控件一般都是成组出现的,具有互斥的性质,即同组单选按钮中只能有一个是被选中的。组框用来将相关的一些控件聚成一组.自绘式按钮是指由程序而不是系统负责重绘的按钮。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> 按钮主要是指命令按钮、选择框和单选按钮。后二者实际上是一种特殊的按钮,它们有选择和未选择状态。当一个选择框处于选择状态时,在小方框内会出现一个“√”,当单选按钮处于选择状态时,会在圆圈中显示一个黑色实心圆。此外,检查框还有一种不确定状态,这时检查框呈灰色显示,不能接受用户的输入,以表明控件是无效的或无意义的。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> 按钮控件会向父窗口发出如表6.3所示的控件通知消息。</span></p>
<b><p ALIGN="CENTER"></b><span style="font-size: 9pt">表6.3 按钮控件的通知消息</span></p>
<table BORDER="1" CELLSPACING="1" CELLPADDING="1" WIDTH="579">
<tr>
<td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt"><b>消息</b></span></td>
<td WIDTH="68%"><b><p ALIGN="JUSTIFY"><span style="font-size: 9pt">含义</span></b></td>
</tr>
<tr>
<td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">BN_CLICKED</span></td>
<td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">用户在按钮上单击了鼠标。</span></td>
</tr>
<tr>
<td WIDTH="32%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">BN_DOUBLECLICKED</span></td>
<td WIDTH="68%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">用户在按钮上双击了鼠标。</span></td>
</tr>
</table>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">FC的CButton类封装了按钮控件。CButton类的成员函数Create负责创建按钮控件,该函数的声明为</span></p>
<blockquote>
<blockquote>
<blockquote>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">BOOL Create( LPCTSTR lpszCaption, DWORD
dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );</span></p>
</blockquote>
</blockquote>
</blockquote>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> 参数lpszCaption指定了按钮显示的正文。dwStyle指定了按钮的风格,如表6.4所示,dwStyle可以是这些风格的组合。rect说明了按钮的位置和尺寸。pParentWnd指向父窗口,该参数不能为NULL。nID是按钮的ID。如果创建成功,该函数返回TRUE,否则返回FALSE.</span></p>
<p ALIGN="JUSTIFY"><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="CENTER"><span style="font-size: 9pt">表6.4 按钮的风格</span></b></p>
<table BORDER="1" CELLSPACING="1" CELLPADDING="1" WIDTH="579">
<tr>
<td WIDTH="31%"><b><p ALIGN="JUSTIFY"><span style="font-size: 9pt">控件风格</span></b></td>
<td WIDTH="69%"><b><p ALIGN="JUSTIFY"><span style="font-size: 9pt">含义</span></b></td>
</tr>
<tr>
<td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">BS_AUTOCHECKBOX</span></td>
<td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">同BS_CHECKBOX,不过单击鼠标时按钮会自动反转。</span></td>
</tr>
<tr>
<td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">BS_AUTORADIOBUTTON</span></td>
<td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">同BS_RADIOBUTTON,不过单击鼠标时按钮会自动反转。</span></td>
</tr>
<tr>
<td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">BS_AUTO3STATE</span></td>
<td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">同BS_3STATE,不过单击按钮时会改变状态。</span></td>
</tr>
<tr>
<td WIDTH="31%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">BS_CHECKBOX</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">BS_DEFPUSHBUTTON</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">BS_GROUPBOX</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">BS_LEFTTEXT</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">BS_OWNERDRAW</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">BS_PUSHBUTTON</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">BS_RADIOBUTTON</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">BS_3STATE</span></td>
<td WIDTH="69%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">同BS_CHECKBOX,不过控件有三种状态:选择、未选择和变灰。</span></td>
</tr>
</table>
<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">除了上表中的风格外,一般还要为控件指定WS_CHILD、WS_VISIBLE和WS_TABSTOP窗口风格,WS_TABSTOP使控件具有Tabstop属性。创建一个普通按钮应指定的风格为WS_CHILD|WS_VISIBLE|WS_TABSTOP。创建一个普通检查框应指定风格WS_CHILD|WS_VISIBLE|WS_TABSTOP|
BS_AUTOCHECKBOX。创建组中第一个单选按钮应指定风格WS_CHILD | WS_VISIBLE |
WS_TABSTOP | WS_GROUP| BS_AUTORADIOBUTTON,组中其它单选按钮应指定风格则不应该包括WS_TABSTOP和WS_GROUP。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">对于用对话框模板编辑器创建的按钮控件,可以在控件的属性对话框中指定表6.4中列出的控件风格。例如,在命令按钮的属性对话框中选择Default
button,相当于指定了BS_DEFPUSHBUTTON。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CButton类的主要的成员函数有:</span></p>
<blockquote>
<blockquote>
<blockquote>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">UINT GetState( ) const;<br>
该函数返回按钮控件的各种状态。可以用下列屏蔽值与函数的返回值相与,以获得各种信息。</span></p>
<blockquote>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">0x0003。用来获取检查框或单选按钮的状态。0表示未选中,1表示被选中,2表示不确定状态(仅用于检查框)。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">0x0004。用来判断按钮是否是高亮度显示的。非零值意味着按钮是高亮度显示的。当用户点击了按钮并按主鼠标左键时,按钮会呈高亮度显示。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">0x0008。非零值表示按钮拥有输入焦点。</span></p>
</blockquote>
</blockquote>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void SetState( BOOL bHighlight );<br>
当参数bHeightlight值为TRUE时,该函数将按钮设置为高亮度状态,否则,去除按钮的高亮度状态。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">int GetCheck( ) const;<br>
返回检查框或单选按钮的选择状态。返回值0表示按钮未被选择,1表示按钮被选择,2表示按钮处于不确定状态(仅用于检查框)。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void SetCheck( int nCheck );<br>
设置检查框或单选按钮的选择状态。参数nCheck值的含义与GetCheck返回值相同。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">UINT GetButtonStyle( ) const;<br>
获得按钮控件的BS_XXXX风格。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void SetButtonStyle( UINT nStyle, BOOL
bRedraw = TRUE );<br>
设置按钮的风格。参数nStyle指定了按钮的风格。bRedraw为TRUE则重绘按钮,否则就不重绘。</span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -