按钮样式

本主题描述按钮类型和样式。

按钮类型

下表列出了按钮类型。 可以选择下列项目之一。 如果不指定按钮类型,则默认为 BS_PUSHBUTTON。

类型

说明

BS_3STATE

创建具有三种状态的复选框按钮:BST_CHECKED、BST_INDETERMINATE 和 BST_UNCHECKED。 单击按钮将发送 BN_CLICKED 通知到所有者窗口,但并不更改按钮的状态。 默认情况下,关联的文本显示在复选框右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。

BS_AUTO3STATE

创建具有三种状态的复选框按钮:BST_CHECKED、BST_INDETERMINATE 和 BST_UNCHECKED。 单击按钮将发送 BN_CLICKED 通知到所有者窗口并更改按钮的状态。 按钮的状态按 BST_CHECKED、BST_INDETERMINATE 和 BST_UNCHECKED 的顺序循环。 默认情况下,关联的文本显示在复选框右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。

BS_AUTOCHECKBOX

创建具有两种状态的复选框按钮:BST_CHECKED 和 BST_UNCHECKED。 单击按钮将发送 BN_CLICKED 通知到所有者窗口并更改按钮的状态。 默认情况下,关联的文本显示在复选框右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。

BS_AUTORADIOBUTTON

创建具有两种状态的单选按钮:BST_CHECKED 和 BST_UNCHECKED。 单选按钮通常在组中使用,每个组一次最多可以拥有一个选中项。 单击按钮将发送 BN_CLICKED 通知到所有者窗口,将选中的单选按钮的状态设置为 BST_CHECKED,然后将按钮组中的其他所有单选按钮的状态设置为 BST_UNCHECKED。 默认情况下,关联的文本显示在单选按钮右侧。 若要在单选按钮左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。

BS_CHECKBOX

创建具有两种状态的复选框按钮:BST_CHECKED 和 BST_UNCHECKED。 单击按钮将发送 BN_CLICKED 通知到所有者窗口,但并不更改按钮的状态。 默认情况下,关联的文本显示在复选框右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。

BS_COMMANDLINK

创建一个命令链接按钮。 命令链接按钮是 Windows Vista 特有的命令按钮,主文本左边显示有一个绿色按钮,主文本下方显示注释。 可以使用 CButton::SetNote 设置注释文本。

BS_DEFCOMMANDLINK

创建一个命令链接按钮。 命令链接按钮是 Windows Vista 特有的命令按钮,主文本左边显示有一个绿色按钮,主文本下方显示注释。 可以使用 CButton::SetNote 设置注释文本。 如果按钮出现在对话框中,则即使按钮没有输入焦点,也要按 ENTER 键发送一个 BN_CLICKED 通知到该对话框。

BS_DEFPUSHBUTTON

创建一个具有深黑色边框的命令按钮。 如果按钮出现在对话框中,则即使按钮没有输入焦点,也要按 ENTER 键发送一个 BN_CLICKED 通知到该对话框。

BS_DEFSPLITBUTTON

创建拆分按钮。 拆分按钮是包含位于下拉箭头旁的按钮 Windows Vista 特有的命令按钮。 单击该按钮时,系统会执行默认命令。 单击下拉箭头时,其他命令菜单会显示出来。 如果拆分按钮出现在对话框中,则即使按钮没有输入焦点,也要按 ENTER 键发送一个 BN_CLICKED 通知到该对话框

BS_GROUPBOX

创建一个可在此分组其他按钮的矩形。 该样式的文本在矩形的左上角显示。

BS_OWNERDRAW

创建一个所有者描述的按钮。 当按钮的可视方面已更改时,该框架将调用 DrawItem 方法。 当使用 CBitmapButton 选件类时,必须设置该样式。

BS_PUSHBUTTON

创建一个命令按钮,当用户单击按钮时 BN_CLICKED 通知将发送到所有者窗口。

BS_RADIOBUTTON

创建具有两种状态的单选按钮:BST_CHECKED 和 BST_UNCHECKED。 单选按钮通常在组中使用,每个组一次最多可以拥有一个选中项。 单击按钮将发送 BN_CLICKED 通知到所有者窗口,但并不自动更改组中任何按钮的状态。 默认情况下,关联的文本显示在单选按钮右侧。 若要在单选按钮左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。

BS_SPLITBUTTON

创建拆分按钮。 拆分按钮是包含位于下拉箭头旁的按钮 Windows Vista 特有的命令按钮。 单击该按钮时,系统会执行默认命令。 单击下拉箭头时,其他命令菜单会显示出来。

BS_USERBUTTON

已弃用,但可与 Windows 16 位版兼容。 基于 Win32 的应用程序应改用 BS_OWNERDRAW。

单选按钮和复选框样式

下表列出了特定于单选按钮和复选框的样式。 其他按钮类型都忽略这些样式。 可以选择以下一个或多个项目。

样式

说明

BS_LEFTTEXT

在单选按钮或复选框样式中,该文本显示在单选按钮或复选框的左侧。

BS_RIGHTBUTTON

在单选按钮或复选框样式中,该文本显示在单选按钮或复选框的左侧。 此样式与 BS_LEFTTEXT 样式相同。

BS_PUSHLIKE

使复选框或单选按钮的外观和行为与命令按钮相似。 当该按钮显示为 BST_CHECKED 时处于按下状态,当显示为 BST_INDETERMINATE 时处于按下和灰显状态,当显示为 BST_UNCHECKED 时处于释放状态。

文本对齐样式

下表列出了水平和垂直文本对齐选项。 可以选择下列项目之一。

样式

说明

BS_LEFT

将矩形按钮内的文本左对齐。 但是,如果该按钮是不具有 BS_RIGHTBUTTON 样式的复选框或单选按钮,则该文本将在复选框或单选按钮右侧进行左端对齐。

BS_RIGHT

将矩形按钮内的文本右对齐。 但是,如果该按钮是不具有 BS_RIGHTBUTTON 样式的复选框或单选按钮,则该文本将在复选框或单选按钮右侧进行右端对齐。

BS_CENTER

将按钮内的文本水平居中对齐。

BS_TOP

将文本置于矩形按钮的顶部。

BS_BOTTOM

将文本置于矩形按钮的底部。

BS_VCENTER

将按钮内的文本垂直居中对齐。

按钮内容选项

下表列出了用于指示按钮中显示的内容的选项。 仅显示文本忽略这些样式的按钮类型。 可以选择下列项目之一。

样式

说明

BS_BITMAP

将按钮指定成以位图形式显示。

BS_ICON

指定按钮以图标形式显示。

BS_TEXT

将按钮指定成以文本形式显示。

其他选项

下表列出了可用于任意按钮类型的附加选项。 可以选择以下一个或多个项目。

样式

说明

BS_FLAT

指定按钮是二维的且不带默认底纹以绘制三维图形。

BS_MULTILINE

如果文本字符串太长而无法容纳在该按钮矩形的一行中,那么就将按钮文本折为多行。

BS_NOTIFY

启用一个按钮以发送 BN_DBLCLK、BN_KILLFOCUS 和 BN_SETFOCUS 通知消息到其父窗口。 请注意,按钮将发送 BN_CLICKED 通知,而无论是否指定样式。

请参见

参考

CButton::Create

Button 样式

BN_CLICKED Notification

其他资源

MFC 使用的样式