按钮控件(button)

来源:互联网 发布:ubuntu拼音输入法无效 编辑:程序博客网 时间:2024/05/22 09:39

  按钮控件根据其风格属性可派生出:命令按钮(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。

原创粉丝点击