在应用程序中使用属性表
若要使用属性表在应用程序中,请完成以下步骤:
创建每个属性页的一个对话框模板资源。 记住用户可能将从一页到另一个,因此,与一致地规划每个页尽可能。
所有页的对话框模板不必大小相同。 框架使用最大的页的大小确定分配的数量空格在属性的属性表调用。
当您创建属性页时对话框模板资源,可以在对话框属性属性表必须指定下列样式:
设置 标题 在 常规 页的编辑框设置为要显示此页的选项卡上的文本。
设置 样式 在 样式 页的列表框。 子级。
设置 边框 在 样式 页的列表框。 细。
确保在 样式 页的 Titlebar 复选框处于选中状态。
确保在 更多样式 页的 已禁用 复选框处于选中状态。
创建 CPropertyPage- 将每个属性页 " 对话框模板相对应的派生类。 添加类参见。 选择 CPropertyPage 用作基类。
创建成员变量表示此属性页的值。 ,因为属性页是专用的对话框中,添加的成员变量处理到属性页完全相同的诸如添加成员变量添加到对话框。 有关更多信息,请参见 定义对话框控件的成员变量。
构造在源代码中的 CPropertySheet 对象。 通常,在构造在处理程序中 CPropertySheet 对象公开属性表的命令。 此对象表示整个属性表。 如果您使用 DoModal 函数创建一个模式属性表,默认情况下该结构提供三个命令按钮:就绪,取消,并将。 结构不创建 创建 功能创建的非模式属性表的命令按钮。 不必从 CPropertySheet 派生类,除非要添加其他控件 (例如预览窗口) 或显示非模式属性表。 此步骤为无模式属性表是必需的,因为它们不包含可用于关闭属性表的任何默认控件。
对于每个页都将添加到特性表,请执行以下操作:
构造每 CPropertyPage的对象派生类可以在中创建之前处理。
调用每页的 CPropertySheet::AddPage 。
通常,还创建 CPropertySheet 的对象此步骤中创建 CPropertyPage 对象。 但是,因此,如果实现 CPropertySheet派生类,可以在 CPropertySheet 对象中嵌入 CPropertyPage 对象并为每个页的 AddPage 从 CPropertySheet派生类构造函数。 AddPage 向属性表的 CPropertyPage 对象列表页,但实际上不会创建该页的窗口。 因此,等待属性表窗口中创建一个名为 AddPage并不是必需的;您可以从属性表的构造函数的 AddPage 。
默认情况下,因此,如果属性表比将适合属性表的有多个选项单个行,选项将在多行中堆栈。 若要禁用堆栈,请使用参数调用的 CPropertySheet::EnableStackedTabs 设置为 FALSE。 ,当您创建特性表时,必须调用 EnableStackedTabs 。
调用 CPropertySheet::DoModal 或 创建 显示属性表。 调用 DoModal 创建属性表为有模式对话框。 调用 创建 创建属性表用作无模式对话框。
在属性页和属性表的所有者的之间交换数据。 这在文章 交换数据上解释。
有关的示例演示如何使用属性列表,请参见 MFC 通用示例 PROPDLG。