COlePropertyPage 类

用于在图形界面(类似于对话框)中显示自定义控件的属性。

语法

class AFX_NOVTABLE COlePropertyPage : public CDialog

成员

公共构造函数

名称 描述
COlePropertyPage::COlePropertyPage 构造 COlePropertyPage 对象。

公共方法

名称 描述
COlePropertyPage::GetControlStatus 指示用户是否修改了控件中的值。
COlePropertyPage::GetObjectArray 返回属性页所编辑的对象的数组。
COlePropertyPage::GetPageSite 返回指向属性页 IPropertyPageSite 接口的指针。
COlePropertyPage::IgnoreApply 确定未启用“应用”按钮的控件。
COlePropertyPage::IsModified 指示用户是否修改了属性页。
COlePropertyPage::OnEditProperty 当用户编辑属性时由框架调用。
COlePropertyPage::OnHelp 当用户调用帮助时由框架调用。
COlePropertyPage::OnInitDialog 当属性页初始化时由框架调用。
COlePropertyPage::OnObjectsChanged 当选择了另一个具有新属性的 OLE 控件时由框架调用。
COlePropertyPage::OnSetPageSite 当属性框架提供页面的站点时由框架调用。
COlePropertyPage::SetControlStatus 设置一个标志,指示用户是否修改了控件中的值。
COlePropertyPage::SetDialogResource 设置属性页的对话资源。
COlePropertyPage::SetHelpInfo 设置属性页的简短帮助文本、其帮助文件的名称及其帮助上下文。
COlePropertyPage::SetModifiedFlag 设置一个标志,指示用户是否修改了属性页。
COlePropertyPage::SetPageName 设置属性页的名称(标题)。

注解

例如,属性页可能包含一个编辑控件,该控件允许用户查看和修改控件的标题属性。

每个自定义或常用控件属性都可以具有一个对话框控件,使控件的用户可以查看当前属性值并在需要时修改该值。

有关如何使用 COlePropertyPage 的详细信息,请参阅 ActiveX 控件:属性页一文。

继承层次结构

CObject

CCmdTarget

CWnd

CDialog

COlePropertyPage

要求

标头:afxctl.h

COlePropertyPage::COlePropertyPage

构造 COlePropertyPage 对象。

COlePropertyPage(
    UINT idDlg,
    UINT idCaption);

参数

idDlg
对话框模板的资源 ID。

idCaption
属性页标题的资源 ID。

注解

实现 COlePropertyPage 子类时,子类的构造函数应使用 COlePropertyPage 构造函数标识属性页所基于的对话模板资源以及包含其标题的字符串资源。

COlePropertyPage::GetControlStatus

确定用户是否修改了具有指定资源 ID 的属性页控件的值。

BOOL GetControlStatus(UINT nID);

参数

nID
属性页控件的资源 ID。

返回值

如果修改了控件值,则为 TRUE;否则为 FALSE。

COlePropertyPage::GetObjectArray

返回属性页所编辑的对象的数组。

LPDISPATCH* GetObjectArray(ULONG* pnObjects);

参数

pnObjects
指向一个无符号长整型的指针,该长整型会接收页面所编辑的对象数。

返回值

指向 IDispatch 指针数组的指针,这些指针用于访问属性页上每个控件的属性。 调用方不得释放这些接口指针。

注解

每个属性页对象都维护指向页面所编辑对象的 IDispatch 接口的指针的数组。 此函数将其 pnObjects 参数设置为该数组中的元素数,并返回指向数组第一个元素的指针。

COlePropertyPage::GetPageSite

获取指向属性页 IPropertyPageSite 接口的指针。

LPPROPERTYPAGESITE GetPageSite();

返回值

指向属性页 IPropertyPageSite 接口的指针。

备注

控件和容器协同工作,以便用户可以浏览和编辑控件属性。 控件会提供属性页,每个属性页都是 OLE 对象,允许用户编辑相关属性集。 容器提供显示属性页的属性框架。 对于每个页面,属性框架都提供支持 IPropertyPageSite 接口的页面站点。

COlePropertyPage::IgnoreApply

确定未启用“应用”按钮的控件。

void IgnoreApply(UINT nID);

参数

nID
要忽略的控件的 ID。

备注

仅当属性页控件的值已更改时,才会启用属性页的“应用”按钮。 使用此函数可指定在其值更改时不会使“应用”按钮启用的控件。

COlePropertyPage::IsModified

确定用户是否更改了属性页上的任何值。

BOOL IsModified();

返回值

如果属性页已修改,则为 TRUE。

COlePropertyPage::OnEditProperty

当要编辑特定属性时,框架会调用此函数。

virtual BOOL OnEditProperty(DISPID dispid);

参数

dispid
所编辑的属性的调度 ID。

返回值

默认实现返回 FALSE。 此函数的替代应返回 TRUE。

注解

可以替代它以将焦点设置到页面上的相应控件。 默认实现不执行任何操作并返回 FALSE。

COlePropertyPage::OnHelp

当用户请求联机帮助时,框架会调用此函数。

virtual BOOL OnHelp(LPCTSTR lpszHelpDir);

参数

lpszHelpDir
包含属性页帮助文件的目录。

返回值

默认实现返回 FALSE。

注解

如果属性页在用户访问帮助时必须执行任何特殊操作,请替代它。 默认实现不执行任何操作并返回 FALSE,这指示框架调用 WinHelp。

COlePropertyPage::OnInitDialog

当属性页对话框初始化时,框架会调用此函数。

virtual BOOL OnInitDialog();

返回值

默认实现返回 FALSE。

备注

如果在对话框初始化时需要执行任何特殊操作,请替代它。 默认实现会调用 CDialog::OnInitDialog 并返回 FALSE。

COlePropertyPage::OnObjectsChanged

当选择了另一个具有新属性的 OLE 控件时由框架调用。

virtual void OnObjectsChanged();

备注

在开发人员环境中查看 OLE 控件的属性时,会使用无模式对话框显示其属性页。 如果选择了另一个控件,则必须为新属性集显示一组不同的属性页。 框架会调用此函数以向属性页通知更改。

替代此函数以接收此操作的通知并执行任何特殊操作。

COlePropertyPage::OnSetPageSite

当属性框架提供属性页的页面站点时,框架会调用此函数。

virtual void OnSetPageSite();

备注

默认实现会加载页面标题,并尝试从对话资源确定页面大小。 如果属性页需要执行任何进一步操作,请替代此函数;替代应调用基类实现。

COlePropertyPage::SetControlStatus

更改属性页控件的状态。

BOOL SetControlStatus(
    UINT nID,
    BOOL bDirty);

参数

nID
包含属性页控件的 ID。

bDirty
指定属性页的字段是否已修改。 如果字段已修改,则设置为 TRUE;如果未修改,则设置为 FALSE。

返回值

如果设置了指定控件,则为 TRUE;否则为 FALSE。

注解

如果在关闭属性页或选择“应用”按钮时属性页控件为脏状态,则控件的属性会使用相应值进行更新。

COlePropertyPage::SetDialogResource

设置属性页的对话资源。

void SetDialogResource(HGLOBAL hDialog);

参数

hDialog
属性页对话资源的句柄。

COlePropertyPage::SetHelpInfo

为属性页指定工具提示信息、帮助文件名和帮助上下文。

void SetHelpInfo(
    LPCTSTR lpszDocString,
    LPCTSTR lpszHelpFile = NULL,
    DWORD dwHelpContext = 0);

参数

lpszDocString
一个字符串,其中包含用于在状态栏或其他位置中显示的简短帮助信息。

lpszHelpFile
属性页帮助文件的名称。

dwHelpContext
属性页的帮助上下文。

COlePropertyPage::SetModifiedFlag

指示用户是否修改了属性页。

void SetModifiedFlag(BOOL bModified = TRUE);

参数

bModified
为属性页的已修改标志指定新值。

COlePropertyPage::SetPageName

设置属性页的名称,属性框架通常会在页面的选项卡上显示该名称。

void SetPageName(LPCTSTR lpszPageName);

参数

lpszPageName
指向包含属性页名称的字符串的指针。

另请参阅

MFC 示例 CIRC3
MFC 示例 TESTHELP
CDialog 类
层次结构图
CDialog 类