SelectionTree 控件
此控件使用户能够更改 Feature 表中列出的功能的选择状态。 控件与用户可通过“浏览”对话框设置的字符串值属性相关联。 通过在 Control 表的 Property 列中输入属性的名称,可以将此控件与属性相关联。
SelectionTree 控件在 Windows XP 或更早版本的操作系统上自动发布以下控件事件。 当所选项从一个节点更改为另一个节点时,SelectionTree 控件会发布这些事件。 如果选择树没有节点,该控件将发布这些事件,并擦除订阅了事件的控件的内容。 不要求在 ControlEvent 表中列出这些 ControlEvent。
控制事件 | 说明 |
---|---|
SelectionAction | 从 UIText 表中发布一个字符串,用于说明高亮显示项。 |
SelectionBrowse | 生成“浏览”对话框,用于修改高亮显示项的路径。 |
SelectionDescription | 从 Feature 表中发布一个字符串,用于说明高亮显示项。 |
SelectionNoItems | 删除描述性文本或禁用已过时项的按钮。 |
SelectionPath | 发布突出显示项的路径。 |
SelectionPathOn | 发布是否存在与当前所选功能关联的选择路径。 |
SelectionSize | 发布高亮显示项的大小。 |
从 Windows Server 2003 系统开始,SelectionTree 控件发布上表中的所有事件,此外,还会发布 DoAction ControlEvent 或 SetProperty ControlEvent。 必须将记录添加到 ControlEvent 表才能发布 DoAction 或 SetProperty ControlEvents。
控制事件 | 说明 |
---|---|
DoAction | 通知安装程序执行自定义操作。 |
SetProperty | 将属性设置为新值。 |
从 Windows Installer 版本 3.0 开始,SelectionTree 控件发布一个事件,此事件运行 ControlEvent 表中列出的自定义操作。 每当控件中的功能选择发生变化或为当前功能选择不同的选择状态时,SelectionTree 控件将发布此事件。 每次发布事件时,自定义操作都会运行。 SelectionTree 控件通过设置以下属性的值而将信息发送到自定义操作。 当 SelectionTree 控件关闭时,所有这些属性都将被清除。
Windows Installer 2.0:不支持。 SelectionTree 控件不发布事件,也不设置以下属性。
属性 | 说明 |
---|---|
MsiSelectionTreeSelectedFeature | Feature 表的 Feature 字段中所选功能的名称。 |
MsiSelectionTreeSelectedAction | 所选功能的安装操作状态。 值可以是 INSTALLSTATE_ABSENT、INSTALLSTATE_LOCAL、INSTALLSTATE_SOURCE 或 INSTALLSTATE_ADVERTISED。 |
MsiSelectonTreeChildrenCount | 直接子节点的数目。 |
MsiSelectionTreeInstallingChildrenCount | 直接子节点(即 INSTALLSTATE_LOCAL、INSTALLSTATE_SOURCE 或 INSTALLSTATE_ADVERTISED)的数目。 |
MsiSelectionTreeSelectedCost | 安装所选功能的成本(单位为 512 字节)。 |
MsiSelectionTreeChildrenCost | 安装所有子功能的成本(单位为 512 字节)。 |
MsiSelectionTreeSelectedPath | 安装所选功能的路径。 仅当功能作为 INSTALLSTATE_LOCAL 安装时才定义。 |
注意
SelectionTree 控件永远不会显示 Control 表的 Text 字段的内容。 此字段指定控件要显示的文本样式,并包含屏幕查看实用工具所用控件的说明。 若要设置文本字符串的字体和字体样式,请在显示的字符串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 表的 TextStyle 列中列出的标识符。 如果这两者都不存在,但 DefaultUIFont 属性定义为有效的文本样式,则会使用该字体。 屏幕查看实用工具会将其下信息读取为控件的说明。 请参阅辅助功能。
控件属性
可将以下属性与此控件一起使用。 若要使用事件更改属性的值,请将控件订阅到 EventMapping 表中的 ControlEvent,并在 Attribute 列中列出该属性的标识符。 在 Event 列中输入 ControlEvent 的标识符。
属性标识符 | 十六进制位 | 说明 |
---|---|---|
IndirectPropertyName | 与控件关联的间接属性的名称。 如果设置了 Indirect 属性位,控件将显示或更改具有此名称的属性的值。 如果设置了 Indirect 属性位,此名称也是 Control 表的 Property 列中列出的属性的值。 | |
位置 | 控件在对话框中的位置。 在 Control 表的 Width、Height、X 和 Y 列中分别输入控件的宽度、高度和控件左角的坐标。 使用安装程序单位表示长度和距离。 |
|
PropertyName | 与此控件关联的属性的名称。 如果未设置 Indirect 属性位,控件将显示或更改具有此名称的属性的值。 此属性在 Control 表的 Property 列中指定。 | |
PropertyValue | 此控件显示或更改的属性的当前值。 如果未设置 Indirect 属性位,则这是 PropertyName 的值。 如果设置了 Indirect 属性位,则这是 IndirectPropertyName 的值。 如果属性发生更改,控件将反映新值。 | |
文本 | 根据在 Control 表的 Text 列中的文本,在屏幕阅读器中显示文本。 请参阅辅助功能。 | |
Visible | 0x00000000 0x00000001 |
隐藏的控件。 可见控件。 将此位包含在 Control 表中 Attributes 列的位字中,以使控件在创建时可见或隐藏。 还可使用 ControlCondition 表隐藏或显示控件。 |
已启用 | 0x00000000 0x00000002 |
处于禁用状态的控件。 处于启用状态的控件。 将此位包含在 Control 的 Attributes 列中的位字中,以在创建控件时启用该控件。 还可使用 ControlCondition 表启用或禁用控件。 |
Sunken | 0x00000000 0x00000004 |
显示默认视觉样式。 显示呈凹陷三维外观的控件。 将这些位包含在 Control 表的 Attributes 列中的位字中。 |
间接 | 0x00000000 0x00000008 |
控件显示或更改 Control 表的 Property 列中的属性的值。 控件显示或更改 Control 表的 Property 列中列出了其标识符的属性的值。 确定是否间接引用与此控件关联的属性。 |
RTLRO | 0x00000000 0x00000020 |
控件中的文本按从左到右的阅读顺序显示。 控件中的文本按从右到左的阅读顺序显示。 |
RightAligned | 0x00000000 0x00000040 |
控件中的文本向左对齐。 控件中的文本向右对齐。 |
LeftScroll | 0x00000000 0x00000080 |
滚动条位于控件的右侧。 滚动条位于控件的左侧。 |
BiDi | 0x000000E0 | 针对 RTLRO、RightAligned 和 LeftScroll 属性的组合设置此值。 |
备注
可使用 CreateWindowEx 函数通过 WC_TREEVIEW 类创建此控件。 此控件具有 WS_BORDER、TVS_HASLINES、TVS_HASBUTTONS、TVS_LINESATROOT、TVS_DISABLEDRAGDROP、TVS_SHOWSELALWAYS、WS_CHILD、WS_TABSTOP和 WS_GROUP 样式。
仅当已调用 CostInitialize 操作和 CostFinalize 操作时,才会填充选择树。
UIText 表中的以下字符串与此控件相关。
术语 | 说明 |
---|---|
AbsentPath |
针对处于不存在状态的项显示的路径。 |
以下六个字符串用于显示所选子项的数量以及与突出显示的项关联的大小:
- SelChildCostPos
- SelChildCostNeg
- SelParentCostPosPos
- SelParentCostPosNeg
- SelParentCostNegPos
- SelParentCostNegNeg
以下字符串用于显示弹出菜单中某个项的可用选择选项:
- MenuAbsent
- MenuLocal
- MenuCD
- MenuNetwork
- MenuAllLocal
- MenuAllCD
- MenuAllNetwork
以下字符串用于解释 SelectionDescription ControlEvent 中的当前选择。
- SelAbsentAbsent
- SelAbsentLocal
- SelAbsentCD
- SelAbsentNetwork
- SelLocalAbsent
- SelLocalLocal
- SelLocalCD
- SelLocalNetwork
- SelCDAbsent
- SelNetworkAbsent
- SelCDLocal
- SelNetworkLocal
- SelCDCD
- SelNetworkNetwork
以下四个本地化字符串用于设置文件大小的格式:
- 字节
- KB
- MB
- GB