RadioButtonGroup 控件

RadioButtonGroup 控件是一组单选按钮。 此控件可用于从预先确定的值列表中选择属性的字符串或整数值。 通过在 Control 表的 Property 列中输入属性的名称,可以将此控件与属性相关联。 在 RadioButton 表的 Value 列中指定可能的选择值。 请注意,显示的字符串不一定与用户选择的值相同。

每个 RadioButtonGroup 控件与一个属性相关联。 此属性的默认值必须在 Property 表中初始化。 在 RadioButton 表中指定的每个 RadioButtonGroup 中,可能有一个单选按钮在 Value 字段中具有与此属性的默认值匹配的值。 这是 RadioButtonGroup 控件的默认按钮。 “默认”按钮最初在控件中是选中状态。

请注意,在选中组中的一个按钮之前,对话框的焦点无法移动到 RadioButtonGroup 控件。 若要将焦点移动到此按钮组,请将其中一个按钮指定为该组的默认按钮。

RadioButtonGroup 控件仅设置属性值,不能用于发送 ControlEvent

实现会将整个组视为一个控件,因此无法在组中隐藏或禁用单个按钮。 同样,所有按钮的样式必须相同,即所有按钮都具有文本,或者所有按钮都具有位图(或其他类似特征)。 按钮的位置相对于组进行放置。 这样,只需更改组的坐标即可移动整个组,而无需更改单个按钮。 创建控件时,会验证各个按钮不会超出组的边界。

控件属性

可将以下属性与此控件一起使用。 若要使用事件更改属性的值,请将控件订阅到 EventMapping 表中的 ControlEvent,并在 Attribute 列中列出该属性的标识符。 在 Event 列中输入 ControlEvent 的标识符。

属性标识符 十六进制位 说明
IndirectPropertyName 这是与控件关联的 Indirect 属性的名称。 如果设置了 Indirect 属性位,控件将显示或更改具有此名称的属性的值。 如果设置了 Indirect 属性位,此名称也是 Control 表的 Property 列中列出的属性的值。
位置 控件在对话框中的位置。 在 Control 表的 Width、Height、X 和 Y 列中分别输入控件的宽度、高度和控件左角的坐标。 使用安装程序单位表示长度和距离。
PropertyName   这是与此控件关联的属性的名称。 如果未设置 Indirect 属性位,控件将显示或更改具有此名称的属性的值。 此属性在 Control 表的 Property 列中指定。
PropertyValue 此控件显示或更改的属性的当前值。 如果未设置 Indirect 属性位,则这是 PropertyName 的值。 如果设置了 Indirect 属性位,则这是 IndirectPropertyName 的值。 如果属性发生更改,控件将反映新值。
文本 此控件属性可以指定控件显示的文本、存储在 Binary 表中的图像或运行时的图像集。 要指定文本,请在 Control 表的 Text 列中输入文本字符串。 若要设置此文本的字体和字体样式,请在显示的字符串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 表的 TextStyle 列中列出的标识符。 如果这两者都不存在,但 DefaultUIFont 属性定义为有效的文本样式,则会使用该字体。
若要指定存储在 Binary 表中的图标或位图图像,请将图像记录的主键从 Binary 表的 Name 列输入到控件的 Control 表记录的 Text 列中。
Visible 0x00000000 0x00000001
隐藏的控件。 可见控件。
将此位包含在 Control 表中 Attributes 列的位字中,以使控件在创建时可见或隐藏。
还可使用 ControlCondition 表隐藏或显示控件。
已启用 0x00000000 0x00000002
处于禁用状态的控件。 处于启用状态的控件。
将此位包含在 Control 的 Attributes 列中,以便在创建控件时启用该控件。
还可使用 ControlCondition 表启用或禁用控件。
Sunken 0x00000000 0x00000004
显示默认视觉样式。 显示呈凹陷三维外观的控件。
将这些位包含在 Control 表的 Attributes 列中的位字中。
间接 0x00000000 0x00000008
控件显示或更改 Control 表的 Property 列中的属性的值。 控件显示或更改 Control 表的 Property 列中列出了其标识符的属性的值。
确定是否间接引用与此控件关联的属性。
整数 0x00000000 0x00000010
与控件关联的属性是一个字符串值。 与控件关联的属性是一个整数值。
Control 表的 Attributes 列的位字中包括此位,以便在创建控件时设置此属性。
RTLRO 0x00000000 0x00000020
控件中的文本按从左到右的阅读顺序显示。 控件中的文本按从右到左的阅读顺序显示。
RightAligned 0x00000000 0x00000040
控件中的文本向左对齐。 控件中的文本向右对齐。
PushLike 0x00000000 0x00020000
控件是用其通常外观绘制的。 控件具有 BS_PUSHLIKE 样式,并绘制为显示为按钮。
Control 表的 Attributes 列的位字中包括此位,以便在创建控件时设置此属性。
Bitmap 0x00000000 0x00040000
Control 表的 Text 列中指定控件中的文本。 控件具有 BS_BITMAP 样式,控件中的文本将替换为位图图像。 Control 表中的 Text 列用作 Binary 表的外键。
将此位包含在 Control 表中 Attributes 列的位字中。
不要同时设置图标和位图样式位。 按钮不能同时包含位图图像和文本。
若要设置文本字符串的字体和字体样式,请在显示的字符串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 表的 TextStyle 列中列出的标识符。 如果这两者都不存在,但 DefaultUIFont 属性定义为有效的文本样式,则会使用该字体。
图标 0x00000000 0x00080000
Control 表的 Text 列中指定控件中的文本。 控件具有 BS_ICON 样式,控件中的文本将替换为图标图像。 Control 表中的 Text 列用作 Binary 表的外键。
将此位包含在 Control 表中 Attributes 列的位字中。
不要同时设置 Icon 位和 Bitmap 位。 按钮不能同时包含图标图像和文本。
若要设置文本字符串的字体和字体样式,请在显示的字符串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 表的 TextStyle 列中列出的标识符。 如果这两者都不存在,但 DefaultUIFont 属性定义为有效的文本样式,则会使用该字体。
FixedSize 0x00000000 0x00100000
拉伸图标图像以适应控件。 裁剪控件中的图标图像或使其居中显示。
将此位包含在 Control 表中 Attributes 列的位字中。
IconSize 0x00000000 0x00200000
0x00400000
0x00600000
加载第一个图像。 加载第一个 16x16 图像。
加载第一个 32x32 图像。
加载第一个 48x48 图像。
图标文件可包含同一图标的不同大小图像。 在 Control 表的 Attributes 列中包含相应位字的值
如果未设置这些位,安装程序将忽略 FixedSize 属性,并且图像将根据控件框大小进行拉伸。 如果同时设置了 IconSize 位和 FixedSize 位,则小于控件的图像居中显示,而大于控件的图像将进行收缩。
HasBorder 未设置 0x01000000
无边框和文本。 显示边框和文本。
Control 的 Attributes 列中的位字中包含 16777216 可显示边框和文本。

 

备注

由于 Windows 绘制框架的方式,即使没有描述文字,控件窗口的顶部与可见框架之间也有间隙。

可使用 CreateWindowEx 函数从 BUTTON 类创建此控件。 如果设置了 HasBorder 位,则为 BS_GROUPBOX 样式,否则为 BS_OWNERDRAW 样式。

RadioButtonGroup 控件不得与其他控件重叠,其他控件也不得与 RadioButtonGroup 重叠。 将此控件和另一个控件重叠可能会导致控件运行或显示不正确。 若要为屏幕阅读器程序提供有关 RadioButtonGroup 控件的额外描述性文本,请按照向单选按钮添加额外文本中提供的示例进行操作。