导航:  Windows Controls Wrapper Functions > Button Control > Constants >

Button Control Styles

上一页返回章节概述下一页

描述

 

如果您通过使用CreateWindowCreateWindowEx功能指定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 ...