MFC ActiveX 控件:属性页
属性页允许 ActiveX 控件用户查看和更改 ActiveX 控件属性。这些属性通过调用控件属性对话框访问,该对话框包含一个或多个属性页,属性页提供用于查看和编辑控件属性的自定义图形界面。
Activex 控件属性页中显示有两种方法:
当控件的属性谓词 (OLEIVERB_PROPERTIES) 时调用,控件打开包含控件的属性页的模式属性对话框。
容器可以显示所选控件的属性页自己的无模式对话框。
属性对话框 (声明下图) 包含显示的当前属性页、选项卡切换在属性页和之间执行常规任务 (如关闭属性页 " 对话框,移除所有更改或立即应用于 Activex 控件的按钮集合区域任何更改。
属性 " 对话框
本文包含主题使用属性页相关在 Activex 控件。这些元素包括:
实现 Activex 控件的默认属性页
将控件添加到属性页
自定义 DoDataExchange 功能
有关使用属性页的更多信息在 Activex 控件,请参见以下文章:
有关使用属性表的信息在除 Activex 控件外的 MFC 应用程序,请参见 属性表(MFC)。
实现默认属性页
如果使用 Activex 控件向导创建自己的控件项目, Activex 控件向导为从 COlePropertyPage 类派生的控件提供默认属性页类。最初,该属性页是空白的,但是,您可以将任何对话框控件或设置控件添加到其中。由于默认情况下 Activex 控件向导仅创建一属性页类,使用类视图,必须创建附加属性页类 (也从派生 COlePropertyPage)。有关此过程的更多信息,请参见 MFC ActiveX 控件:添加另一个自定义属性页。
实现属性页 (在本例中,默认值) 三步过程:
实现属性页
添加 COlePropertyPage- 对控件项目的派生类。如果项目已使用创建 Activex 控件向导 (在本例中为),默认属性页类已存在。
使用对话框编辑器任何控件添加到属性页模板。
自定义 COlePropertyPage的 DoDataExchange 功能 - 交换值的派生类在属性页中控件和 Activex 控件大小。
有关示例的目的,下面的过程使用简单的控件 (名为 “sample”)。示例创建了使用 Activex 控件向导只包含常用的 caption 属性
将控件添加到属性页
将控件添加到属性页
打开控件的项目中,打开资源视图。
双击 对话框 目录图标。
打开 IDD_PROPPAGE_SAMPLE 对话框。
Activex 控件向导追加该项的名称到对话框 ID 的末尾,在这种情况下,示例。
拖放从工具箱的选定的控件在对话框中区域。
在本示例中,文本标签控件 “声明: ”并将 IDC_CAPTION 标识符的一个编辑框控件就足够了。
单击 保存 在工具栏保存更改。
既然已修改用户界面,需要使用声明属性链接编辑框。这在以下部分来完成由编辑器 CSamplePropPage::DoDataExchange 功能。
自定义 DoDataExchange 功能
您的属性页 CWnd::DoDataExchange 功能允许您使用属性的实际值在控件的页链接属性值。若要建立链接,您必须映射相应的属性页字段添加到各自的控件属性。
使用属性页 DDP_ 功能,这些映射中实现。DDP_ 功能的工作方式与在标准 MFC 对话框的 DDX_ 功能,但有一个例外。除了将成员变量的引用之外, DDP_ 函数将控件的属性的名称。下面是在 DoDataExchange 函数的典型项属性页。
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));
使用 DDP_TEXT 功能,此功能关联属性页的 m_caption 成员变量声明,。
在特性页控件插入后,您需要上述建立属性页、控件 IDC_CAPTION和实际控件属性,声明之间的链接,使用 DDP_Text 功能。
属性页(MFC) 为其他对话框控件类型可用,例如复选框,单选按钮,而列表框。下表列出了整组属性页 DDP_ 功能及其用途:
属性页函数
函数名 |
使用此功能链接 |
---|---|
DDP_CBIndex |
在组合框中的选定字符串的索引具有控件的属性。 |
DDP_CBString |
在组合框中的选定字符串具有控件的属性。选定的字符串可以以字母开头和属性值相同,但不需要完全匹配它。 |
DDP_CBStringExact |
在组合框中的选定字符串具有控件的属性。选定的字符串和特性的字符串值必须完全匹配。 |
DDP_Check |
将控件属性的复选框。 |
DDP_LBIndex |
在一个列表框中的选定字符串的索引具有控件的属性。 |
DDP_LBString |
在一个列表框中的选定字符串具有控件的属性。选定的字符串可以以字母开头和属性值相同,但不需要完全匹配它。 |
DDP_LBStringExact |
在一个列表框中的选定字符串具有控件的属性。选定的字符串和特性的字符串值必须完全匹配。 |
DDP_Radio |
具有控件的属性的一个单选按钮。 |
DDP_Text |
与控件属性的文本。 |