添加控件和文本

放置在对话框和广告牌上的控件和文本使用户能够与安装过程交互。 将对话框添加到用户界面,方法是将其包含在 Dialog 中,如使用用户界面中所述。 通过分别填充 Control 表BBControl 表,使用控件填充对话框和广告牌。

可以在 Control 表的 Attributes 列中指定控件的初始属性。 请参阅控件属性

若要使控件属性依赖于条件,请使用 ControlCondition 表根据属性或条件语句的值禁用、启用、隐藏或显示控件。 还可以使用此表替代在 Dialog 中输入的默认控件的规范。

若要使事件更改控件属性,请为控件订阅 EventMapping 表中的 ControlEvent。 ControlEvent 指定要由安装程序执行的操作,或者更改对话框中一个或多个控件的属性。 请参阅 ControlEvent 概述。 请在 EventMapping 表的 Attribute 列中输入属性的标识符,在 Event 列中输入 ControlEvent 的标识符。

某些控件有助于从用户收集信息。 例如,检查框允许用户设置属性的值。 请参阅 CheckBox 表ComboBox 表ListBox 表RadioButton 表ListView 表

请注意,出于安全考虑,与用户界面交互的用户无法更改专用属性。 如果属性由用户界面设置,则必须是公共属性,并且名称全大写。 请参阅关于属性

可以通过填写 ActionText 表,使对话框向用户显示信息,或将其写入日志以响应安装操作。

控件可以具有预定义的字体样式。 若要设置文本字符串的字体和字体样式,请在显示的字符串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 表的 TextStyle 列中列出的标识符。 如果这两者都不存在,但 DefaultUIFont 属性定义为有效的文本样式,则会使用该字体。

建议在Property 表中将每个具有 UI 的安装包的 DefaultUIFont 属性设置为 TextStyle 表中列出的预定义样式之一。 如果未指定此属性,安装程序将使用 System 字体。 当包的代码页与用户的默认 UI 代码页不同时,这可能会导致安装程序错误地显示文本字符串。

对于大多数控件,使用数据库代码页指定的字符集来显示文本。 这可确保将正确的字符集与数据库中包含的信息一起使用。 例外情况是 EditDirectoryListPathEditDirectoryCombo 控件,这些控件始终使用用户的默认 UI 字符集显示文本。 如果设置了 UsersLanguage 控件属性,则 TextListBoxComboBox 控件使用用户的默认 UI 字符集。

在某些情况下,取消对话框时,可能会错误地重新绘制控件。 这与移除“取消”对话框后控件接收 WM_PAINT 消息的顺序有关。 若要解决此问题,请尝试更改控件表中控件的顺序。

控件应足够大,能够容纳在所有字号设置下查看的整个文本。 如果 UI 中的文本可能已本地化,控件应足够大,以容纳整个本地化文本。 较大的字号或本地化文本可能需要比原始文本更多的空间,并且可能会被大幅缩小的控件截断。 有关本地化 UI 文本的详细信息,请参阅本地化示例一节。