按钮控件(button)

  按钮控件根据其风格属性可派生出:命令按钮(Pushbutton)、检查框(Check Box)、单选按钮(Radio Button)、组框(Group Box)和自绘式按钮(Owner-draw Button)。
  命令按钮是指可以响应鼠标点击的小矩形子窗口。命令按钮的作用是对用户的鼠标单击作出反应并触发相应的事件,在按钮中既可以显示正文,也可以显示位图。
  选择框控件可作为一种选择标记,可以有选中、不选中和不确定三种状态。当一个选择框处于选择状态时,在小方框内会出现一个“√”。
  单选按钮控件一般都是成组出现的,具有互斥的性质,即同组单选按钮中只能有一个是被选中的。当单选按钮处于选择状态时,会在圆圈中显示一个黑色实心圆。
  组框用来将相关的一些控件聚成一组。
  自绘式按钮是指由程序而不是系统负责重绘的按钮。
  此外,选择框、单选框还有一种不确定状态,这时检查框呈灰色显示,不能接受用户的输入,以表明控件是无效的或无意义的。 

常数说明
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向控件发送如下消息来设定和查询控件各种参数。

uMsgwParamlParam说明
BM_GETCHECK00取选择框和单选框的当前选择状态。
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(图标)


  另外,应用程序可以向其父窗口发送DM_GETDEFID来获取默认控件的ID,也可以发送DM_SETDEFID并在wParam中指控件的ID来设置默认控件的ID。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值