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 控件的额外描述性文本,请按照向单选按钮添加额外文本中提供的示例进行操作。