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