RadioButtonGroup 控件

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

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

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

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

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

控件属性

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

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

 

言论

由于 Windows 绘制框架的方式,控件窗口顶部与可见框架之间存在差距,即使没有标题也是如此。

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

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