按钮控件(CButton和CBitmapButton)基本介绍
常数 | 说明 |
BS_RADIOBUTTON | 创建一个单选框控件,其标题文本被显示在选择框右侧。该控件允许程序设定为选中和未选两种状态。当一个控件被设定成选中,在同一组(或同一父窗口)范围内的其它单选框控件将全部设设定成未选状态,类似收音机的波段选择开关。 |
BS_AUTORADIOBUTTON | 创建一个自动单选框控件。该控件允许程序设定为选中和未选两种状态。当一个控件被选中,在同一组(或同一父窗口)范围内的其它单选按钮控件将全部设定成未选状态,类似收音机的波段选择开关,同时当用户鼠标单击该控件时,其状态自动设定成选中状态。 |
BS_CHECKBOX | 创建一个选择框控件,其标题文本被显示在选择框右侧。该控件允许程序设定为选中和未选两种状态。 |
BS_AUTOCHECKBOX | 创建一个自动选择框控件,该控件允许程序设定为选中和未选两种状态,同时当用户鼠标单击该控件时,其状态自动在选中和未选状态间切换。 |
BS_3STATE | 创建一个三态选择框控件,其标题文本被显示在选择框右侧。该控件允许程序设定为选中、未选和不定(变灰)三种状态。 |
BS_AUTO3STATE | 创建一个自动三态选择框控件,该控件允许程序设定为选中、未选和不定(变灰)三种状态,同时当用户鼠标单击该控件时,其状态自动在选中、不定(变灰)、未选三种状态间切换。 |
BS_PUSHBUTTON | 创建一个命令按钮控件,这也是本类的默认值。 |
BS_DEFPUSHBUTTON | 创建一个默认命令按钮控件,与普通命令按钮不同的是:该按钮被设置成默认按钮,按钮绘成黑色边框,如果按钮在一个对话框,则用户按下键盘的“ENTER”键等效于按钮被按下。通常被应用在按键快速输入。 |
BS_PUSHLIKE | 本风格属性与选择框或单选框配合,使它们的显示外观看上去象个普通按钮,利用显示控件为上浮和下沉来分别表示选中和未选状态。 |
BS_GROUPBOX | 创建一个组框控件,用3D下凹线条绘制一个矩形,其标题文本被显示在选择框左上角。 |
BS_LEFTTEXT BS_RIGHTBUTTON | 这两个常数相等。与选择框或单选框配合,使其标题文字显示在左边。 |
BS_OWNERDRAW | 创建一个自绘式按钮。创建控件时向父窗口发送WM_MEASUREITEM消息,按钮需要重绘时向父窗口发送WM_DRAWITEM消息,本风格属性不能与其它风格联合使用。 |
BS_USERBUTTON | 本风格属性32位程序已经停止使用了。 |
BS_BITMAP | 指定控件显示位图。 |
BS_ICON | 指定控件显示图标。 |
BS_TEXT | 指定控件显示文本。 |
BS_TOP | 文本显示垂直居顶。 |
BS_VCENTER | 文本显示垂直居中。 |
BS_BOTTOM | 文本显示垂直居底。 |
BS_LEFT | 文本显示水平居左。 |
BS_CENTER | 文本显示水平居中。 |
BS_RIGHT | 文本显示水平居右。 |
BS_MULTILINE | 指定文本长度太长时可以自动进行换行处理。 |
BS_NOTIFY | 指定当用户双击控件,失去焦点和得到焦点时分别向父窗口发送BN_DBLCLK、BN_KILLFOCUS或BN_SETFOCUS通知消息 ,设定本风格常数将禁止用户单击消息。 |
当用户在按钮控件上进行各种操作时,其父窗口将收到WM_COMMAND通知消息,同时wParam的低16位带控件的ID。lParam带控件句柄(hWnd),wParam的高16位带有如下表的消息代码。
BN_CLICKED | 用户单击按钮。 |
BN_DBLCLK | 用户双击按钮。 |
BN_DISABLE | 按钮被设成禁止状态。 |
BN_PUSHED | 用户按下按钮。 |
BN_KILLFOCUS | 按钮失去键盘输入焦点。 |
BN_PAINT | 按钮将被重绘。 |
BN_SETFOCUS | 按钮得到键盘输入焦点。 |
BN_UNPUSHED | 用户释放按钮。 |
应用程序可以通过调用SendMessage向控件发送如下消息来设定和查询控件各种参数。
uMsg | wParam | lParam | 说明 |
BM_GETCHECK | 0 | 0 | 取选择框和单选框的当前选择状态。 |
BM_SETCHECK | 状态 | 0 | 设定选择框和单选框的当前选择状态,wParam可指定为BST_CHECKED(选中)、BST_UNCHECKED(不选)或BST_INDETERMINATE(不定)三种状态。 |
BM_SETSTATE | 状态 | 0 | 改变按钮的高亮度状态,wParam可指定为TRUE(设置高亮度)或FALSE(取消高亮度)。 |
BM_SETSTYLE | 风格 | TRUE或FALSE | 改变按钮的各种风格,wParam指定为上述的“BS_”开头的各种风格,lParam为TRUE则重绘控件。 |
BM_SETIMAGE | 图片类型 | 句柄 | 设置图形按钮的图像句柄,wParam指定为IMAGE_BITMAP(位图)或IMAGE_ICON(图标) |
BM_GETIMAGE | 图片类型 | 0 | 取图形按钮的图像句柄,wParam指定为IMAGE_BITMAP(位图)或IMAGE_ICON(图标) |
常用函数:
UINT GetState( ) const 返回按钮控件各种状态
void SetState(BOOL bHighlight) 设置按钮高亮状态
int GetCheck() 返回检查框或单选框的选择状态
void SetCheck(int nCheck) 设置检查框或单选框的选择状态
UINT GetButtonStyle() 获取按钮控件的BS_XXXX风格
void SetButtonStyle(UINT nStyle,BOOL bRedraw=TRUE) 设置按钮风格
HBITMAP SetBitmap(HBITMAP hBitmap) 设置按钮显示的位图
HBITMAP GetBitmap() 返回之前用SetBitmap设置的位图
HICON SetIcon(HICON hIcon) 设置按钮现实的图标
HICON GetIcon() 返回之前设置的图标
HCURSOR SetCursor(HCURSOR hCursor) 设置按钮显示的光标
HCURSOR GetCursor() 返回之前设置的光标
void ChekDlgButton(int nIDButton,UINT nCheck) 设置按钮的选择状态
void CheckRadioButton(int nIDFirstButton,int nIDLastButton,int nIDCheckButton) 用来选择组中的一个单选按钮
int GetCheckedRadioButton(int nIDFirstButton,int nIDLastButton) 获取一组单选按钮中被选中按钮的ID
UINT IsDlgButtonChecked(int nIDButton) 返回选择框或单选框的选择状态