按钮类型
有多种类型的按钮和一个或多个按钮样式可以区分相同类型的按钮。
本文档讨论以下主题。
按钮类型和样式
按钮属于类型,并且可能具有影响其外观和行为的其他样式。 有关按钮样式表,请参阅 按钮样式。
以下屏幕截图显示了不同类型的按钮。
对话框的
屏幕截图显示按钮在 Windows Vista 中的显示方式。 外观因作系统的不同版本而异,具体取决于用户设置的主题。
请注意有关此图的以下几点:
- “三态”复选框以不确定状态显示。 选中或取消选中时,它看起来像正常复选框。
- 大型推送按钮已以编程方式设置为推送状态(通过发送 BM_SETSTATE 消息),以便即使未单击它,它也会保留其外观。
- 在显示的视觉样式中,默认按下按钮的背景(或具有输入焦点的另一个按下按钮)在蓝色和灰色之间循环。
复选框
复选框 由一个方框和一个应用程序定义的标签、图标或位图组成,用于指示用户可以通过选择按钮做出的选择。 应用程序通常显示复选框,使用户能够选择一个或多个互斥的选项。
复选框可以是四种样式之一:标准、自动、三态和自动三态,分别由常量 BS_CHECKBOX、BS_AUTOCHECKBOX、BS_3STATE和 BS_AUTO3STATE定义。 每个样式可以假定有两种复选状态:选中(框中的复选标记)或清除(无复选标记)。 此外,三态复选框可以假定不确定状态(复选框内的阴影框),这可能表示用户尚未做出选择。 重复单击标准或自动复选框可将其从选中切换切换为已清除,然后再次切换。 重复单击三态复选框会将它从选中切换为清除到不确定,然后重复循环。
当用户单击复选框(任何样式)时,复选框将接收键盘焦点。 系统将复选框的父窗口发送包含 BN_CLICKED 通知代码的 WM_COMMAND 消息。 如果父窗口来自自动复选框或自动三态复选框,则无需处理此消息,因为系统会自动设置这些样式的检查状态。 但是,如果父窗口来自非自动复选框或三态复选框,则父窗口必须处理该消息,因为父窗口负责设置这些样式的检查状态。 无论复选框样式如何,系统在更改复选框状态后自动重新修补该复选框。
应用程序可以使用 IsDlgButtonChecked 函数确定复选框的状态。
组框
组框 是一个矩形,它围绕一组控件(如复选框或单选按钮),其左上角带有应用程序定义的文本标签。 组框的唯一用途是组织由通用用途(通常由标签指示)相关的控件。 组框只有一种样式,由常量 BS_GROUPBOX定义。 由于无法选择组框,因此它没有检查状态、焦点状态或推送状态。
按下按钮
按钮 是一个矩形,其中包含应用程序定义的文本标签、图标或位图,指示用户选择按钮时该按钮的作用。
按下按钮可以是两种样式之一(标准或默认值),由常量 BS_PUSHBUTTON 和 BS_DEFPUSHBUTTON定义。 标准推送按钮通常用于启动作。 当用户单击键盘焦点时,它会收到键盘焦点。 默认推送按钮通常用于指示最常见的或默认选择,例如关闭对话框。 在对话框中没有其他按下按钮时,用户只需按 Enter 即可选择的按钮。
当用户单击一个按下按钮时,它会收到键盘焦点。 系统将按钮的父窗口发送一条包含 BN_CLICKED 通知代码的 WM_COMMAND 消息。
拆分按钮 是 Windows Vista 和 版本 6.00中引入的特殊按钮。 拆分按钮分为两个部分。 主部件的功能类似于常规或默认的按下按钮。 第二部分有一个向下箭头。 通常,单击箭头时会显示一个菜单。
拆分按钮具有 BS_SPLITBUTTON 样式,或者 BS_DEFSPLITBUTTON 样式(如果它是对话框中的默认按钮)。 可以使用 BCM_SETSPLITINFO 消息或相应的 Button_SetSplitInfo 宏来修改按钮的外观。
当用户单击拆分按钮的主部分时,它会发送 BN_CLICKED 通知,就像普通的按下按钮一样。 但是,当用户单击向下箭头时,它会发送 BCN_DROPDOWN 通知。 应用程序负责显示菜单以响应BCN_DROPDOWN。
Windows Vista 和 版本 6.00 还引入了另一种按下按钮,即 命令链接。 从视觉上看,命令链接与普通按下按钮大相径庭,但它具有相同的功能。 命令链接通常以较小的字体显示箭头图标、文本行和其他文本。
单选按钮
单选按钮(也称为选项按钮)由圆形按钮和应用程序定义的标签、图标或位图组成,指示用户可以通过选择按钮做出的选择。 应用程序通常使用分组框中的单选按钮,使用户能够选择一组相关但相互排斥的选项之一。
单选按钮可以是两种样式之一:标准或自动,由样式常量 BS_RADIOBUTTON 和 BS_AUTORADIOBUTTON定义。 每个样式可以假定有两种检查状态:选中(按钮中的点)或清除(按钮中没有点)。
当用户选择任一状态时,单选按钮将接收键盘焦点。 系统将按钮的父窗口发送包含 BN_CLICKED 通知代码的 WM_COMMAND 消息。 如果父窗口来自自动单选按钮,则不需要处理此消息,因为系统会自动设置该样式的检查状态。 但是,如果父窗口来自非自动单选按钮,则父窗口应处理该消息,因为父窗口负责设置该样式的检查状态。 无论单选按钮样式如何,系统都会在按钮状态发生更改时自动重新修补按钮。
单选按钮按组排列,并且可以随时检查组中的一个按钮。 如果为任何单选按钮设置了 WS_GROUP 标志,该按钮是组中的第一个按钮,并且紧随其后的选项卡顺序(但不具有 WS_GROUP 标志)的所有按钮都是其组的一部分。 如果没有单选按钮具有 WS_GROUP 标志,对话框中的所有单选按钮都被视为单个组。
应用程序可以使用 IsDlgButtonChecked 函数确定是否检查单选按钮。
相关主题
-
参考
-
概念