描述
如果您通过使用CreateWindow或CreateWindowEx功能指定BUTTON类来创建按钮,则可以指定以下按钮样式的组合。
常数
BS_3STATE |
创建一个与复选框相同的按钮,不同之处在于该框可能是灰色的,也被勾选或清除。 使用灰色状态显示复选框的状态未确定。 |
BS_AUTO3STATE |
创建与三状态复选框相同的按钮,除了用户选择该框之后,框会更改其状态。 状态通过检查,灰色和清除循环。 |
BS_AUTOCHECKBOX |
创建一个与复选框相同的按钮,但每次用户选中该复选框时,检查状态将自动在选中和清除之间切换。 |
BS_AUTORADIOBUTTON |
创建与单选按钮相同的按钮,除了当用户选择该按钮时,系统会自动将按钮的检查状态设置为检查状态,并自动将同一组中所有其他按钮的检查状态设置为清除。 |
BS_CHECKBOX |
创建一个小的,空的复选框与文本。 默认情况下,文本显示在复选框的右侧。 要显示复选框左侧的文本,请将此标志与BS_LEFTTEXT样式(或等效的BS_RIGHTBUTTON样式)组合。 |
BS_DEFPUSHBUTTON |
创建一个按钮,其行为类似于BS_PUSHBUTTON样式按钮,但也有一个沉重的黑色边框。 如果按钮在对话框中,用户可以通过按ENTER键选择按钮,即使按钮没有输入焦点。 此样式对于使用户能够快速选择最可能的(默认)选项非常有用。 |
BS_GROUPBOX |
创建一个矩形,其中可以对其他控件进行分组。 与此样式相关联的任何文本都将显示在矩形左上角。 |
BS_LEFTTEXT |
在单选按钮或复选框样式组合时,单选按钮左侧的文本或复选框。 与BS_RIGHTBUTTON风格相同。 |
BS_OWNERDRAW |
创建一个所有者绘制的按钮。 当按钮的视觉方面已更改时,所有者窗口将收到WM_DRAWITEM消息。 不要将BS_OWNERDRAW样式与任何其他按钮样式相结合。 |
BS_PUSHBUTTON |
创建按钮,当用户选择按钮时,将WM_COMMAND消息发布到所有者窗口。 |
BS_RADIOBUTTON |
用文字创建一个小圆。 默认情况下,文字显示在圈子的右侧。 要在圆圈左侧显示文本,请将此标志与BS_LEFTTEXT样式(或等效的BS_RIGHTBUTTON样式)相结合。 使用单选按钮进行相关但互相排斥的组合。 |
BS_USERBUTTON |
已经过时,但与16位版本的Windows兼容。 应用程序应该使用BS_OWNERDRAW。 |
BS_BITMAP |
指定按钮显示位图。 |
BS_BOTTOM |
将文本放在按钮矩形的底部。 |
BS_CENTER |
在按钮矩形中居中文字。 |
BS_ICON |
指定该按钮显示一个图标。 |
BS_FLAT |
指定按钮是二维的; 它不使用默认阴影来创建3-D图像。 |
BS_LEFT |
左键对齐按钮矩形中的文本。 但是,如果按钮是不具有BS_RIGHTBUTTON样式的复选框或单选按钮,则该文本在复选框或单选按钮的右侧保持对齐。 |
BS_MULTILINE |
如果文本字符串太长而不能在按钮矩形中的单行上,则将按钮文本包装到多行。 |
BS_NOTIFY |
启用按钮将BN_KILLFOCUS和BN_SETFOCUS通知消息发送到其父窗口。
请注意,按钮发送BN_CLICKED通知消息,无论它是否具有此样式。 要获取BN_DBLCLK通知消息,该按钮必须具有BS_RADIOBUTTON或BS_OWNERDRAW样式。 |
BS_PUSHLIKE |
按钮(如复选框,三态复选框或单选按钮)看起来像一个按钮。 当按下或检查时,该按钮看起来会被抬起,当被按下或检查时,该按钮下沉。 |
BS_RIGHT |
右键对齐按钮矩形中的文本。 但是,如果按钮是不具有BS_RIGHTBUTTON风格的复选框或单选按钮,则该文本在复选框或单选按钮的右侧右对齐。 |
BS_RIGHTBUTTON |
在按钮矩形的右侧放置单选按钮的圆圈或复选框的正方形。 与BS_LEFTTEXT风格相同。 |
BS_TEXT |
指定按钮显示文本。 |
BS_TOP |
将文本放在按钮矩形的顶部。 |
BS_TYPEMASK |
Microsoft Windows 2000:使用OR运算符在BS_ *样式位上产生的复合样式位。 它可以用于从给定的位掩码中屏蔽有效的BS_ *位。 请注意,这是过时的,并没有正确地包括所有有效的样式。 因此,您不应该使用这种风格。 |
BS_VCENTER |
在按钮矩形的中间(垂直)上放置文本。 |
BS_SPLITBUTTON |
Microsoft Windows Vista和版本6.00. 创建分割按钮。 拆分按钮有一个下拉箭头。 箭头在按钮的一侧占据一个小矩形。 |
BS_DEFSPLITBUTTON |
Microsoft Windows Vista和版本6.00. 创建一个像BS_PUSHBUTTON样式按钮一样的拆分按钮,但也有一个很大的黑色边框。 如果分割按钮在对话框中,则用户可以通过按ENTER键选择分割按钮,即使分割按钮没有输入焦点。 此样式对于使用户能够快速选择最可能的(默认)选项非常有用。 |
BS_COMMANDLINK |
Microsoft Windows Vista和版本6.00. 创建命令链接按钮。 使用消息BCM_SETNOTE。 |
BS_DEFCOMMANDLINK |
Microsoft Windows Vista和版本6.00. 创建一个命令链接按钮,其行为类似于BS_PUSHBUTTON样式按钮。 如果按钮在对话框中,用户可以通过按ENTER键选择命令链接按钮,即使命令链接按钮没有输入焦点。 此样式对于使用户能够快速选择最可能的(默认)选项非常有用。 |
引用文件 #INCLUDE Once
WinUser.inc
备注
按钮控件上的文本或图标或两者的外观取决于BS_ICON和BS_BITMAP样式,以及是否调用BM_SETIMAGE消息。 可能的结果如下。
BS_ICON或BS_BITMAP设置? |
BM_SETIMAGE叫? |
Result |
是 |
是 |
仅显示图标。 |
No |
是 |
显示图标和文字。 |
是 |
No |
仅显示文字。 |
No |
No |
仅显示文字 |
BS_TYPEMASK不用作“位域”。 请参阅以下内容以便正确使用。
鉴于:
btnstyle = GetWindowLong (hwnd, %GWL_STYLE, %IDC_BUTTON) AND %BS_TYPEMASK
不要使用如下所示:
“这对于BS_AUTOCHECKBOX,BS_CHECKBOX或BS_DEFPUSHBUTTON来说是正确的!
IF (btnstyle AND %BS_AUTOCHECKBOX) THEN ...
使用如下:
“这将只寻找一个BS_AUTOCHECKBOX
IF btnstyle = %BS_AUTOCHECKBOX THEN ...