在微软MSDN上有详细过程,但还有一步要注意:对话框的属性中,Border改为 none; Style改为Child;
微软帮助文档如下:
插入新的"属性页模板到项目
-
打开控件的项目,则在项目工作区中打开资源视图。
-
右击在"资源视图打开快捷菜单并单击 添加资源。
-
展开 对话框 节点,然后选择 IDD_OLE_PROPPAGE_SMALL。
-
单击 New 将资源添加到此项目。
-
选择新的属性页刷新模板属性窗口。
-
输入 ID 属性的新值。 此示例使用 IDD_PROPPAGE_NEWPAGE。
-
在工具栏上单击**“保存”**。
相关新的模板类。
-
打开类视图。
-
右击类视图打开快捷菜单。
-
从快捷菜单中单击“添加”,然后单击“添加类”。
这会打开 添加类 对话框。
-
双击 MFC 类 模板。
-
在 类名 框在 MFC 类向导中,键入项目名称。新的对话框类。(在此示例中,即 CAddtlPropPage。)
-
如果要更改文件的名称,单击 更改。 输入名称。实现和头文件或接受默认名称。
-
在 基类 框中,选择 COlePropertyPage。
-
在 对话框 ID 框中,选择 IDD_PROPPAGE_NEWPAGE。
-
单击以创建类的 完成 。
若要允许设置为此新的属性页中的用户控件访问,请对控件的 ID 属性页的节进行以下更改 (位于控件实现文件):
BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
PROPPAGEID(CMyAxUIPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)
注意必须增加 BEGIN_PROPPAGEIDS 宏 (计数) 属性页从 1 至 2. 中的第二个参数。
还必须修改控件实现文件 (.cpp) 中的文件标题 (。H) 新的属性页的类文件。
下一步是创建已为新的"属性页"将提供一类型名称和标题的两个字符串资源。
添加新的字符串资源。属性页
-
打开控件的项目,请打开资源视图。
-
双击 字符串表 文件夹然后双击要将字符串中现有的字符串表资源。
这将打开 Windows 中的字符串表。
-
选择空白行在字符串表结尾时键入文本、标题,字符串:例如,添加“附加属性页”。
这显示打开 标题 和 ID 对话框的 String Properties 页。 标题 框包含您键入的字符串。
-
在 ID 框中,选中或键入字符串的 ID。 完成后,按 Enter。
此示例适用于新的属性页的类型名使用 IDS_SAMPLE_ADDPAGE。
-
重复使用 IDS_SAMPLE_ADDPPG_CAPTION 的步骤 3 和 4“ID 和其他属性页的”标题的。
-
在新的"属性页类的 .cpp 文件 (在此示例中,CAddtlPropPage) 修改 CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry,以便 IDS_SAMPLE_ADDPAGE 将 AfxOleRegisterPropertyPageClass,如下面的示例所示:
BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister)
{
if (bRegister)
return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
m_clsid, IDS_SAMPLE_ADDPAGE);
else
return AfxOleUnregisterClass(m_clsid, NULL);
}
7. 如下修改 CAddtlPropPage 构造函数,以便 IDS_SAMPLE_ADDPPG_CAPTION 传递给 COlePropertyPage 构造函数,例如:
CAddtlPropPage::CAddtlPropPage() :
COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION)
{
}