C O lePropertyPage

COlePropertyPage 类 以 类 似 于 对 话 框 的 图 形 化 界 面 来 显 示 定 制 控 件 的 属 性 。 例如 , 一 个 属 性 页 可 能 会 包 含 一 个 编 辑 控 件 , 允 许 用 户 查 看 和 修 改 控 件 的 标 题 属

每 一 个 定 制 的 或 普 通 的 控 件 属 性 都 可 以 有 一 个 对 话 框 控 件 来 允 许 控 件 的 用 户 查看 当 前 的 属 性 值 , 如 果 有 必 要 的 话 还 可 以 修 改 这 个 值 。

要 获 取 更 多 有 关 使 用 COlePropertyPage 的 信 息 , 请 参 见 “ Visual C++ 程 序 员 指南 ” 一 书 中 的 文 章 “ ActiveX 控 件 : 属 性 页 ” , 和 “ Visual C++ 教 程 ” 中 的 “ 修改 缺 省 的 属 性 页 ” 。

#include <afxctl.h>

请 参 阅 CDialog

CO lePropertyPage 类 成 员

Construction

ColePropertyPage 构 造 一 个 ColePropertyPage 对 象

Operation s GetObjectArray 返 回 由 属 性 页 编 辑 的 对 象 数 组

Operation s SetModifiedFlag 设 置 一 个 标 志 , 该 标 志 用 来 表 明 用 户 是 否 修 改 了

属 性 页

IsModified 表 明 用 户 是 否 修 改 了 属 性 页

GetPageSite 返 回 一 个 指 向 属 性 页 的 IpropertyPageSite 接 口 的 指针

SetDialogResource 设 置 属 性 页 的 对 话 框 资 源

SetPageName 设 置 属 性 页 的 名 称 ( 标 题 )

SetHelpInfo 设 置 属 性 页 的 简 短 帮 助 文 本 , 帮 助 文 件 的 名 称 , 以 及 帮 助 的 上 下 文

GetControlStatus 表 明 用 户 是 否 修 改 了 控 件 中 的 值SetControlStatus 设 置 一 个 标 志 来 表 明 用 户 是 否 修 改 了 控 件 中 的 值IgnoreApply 确 定 是 哪 一 个 控 件 没 有 使 能 Apply 按 钮

Overridable s OnEditProperty 当 用 户 编 辑 一 项 属 性 时 由 框 架 调 用

OnHelp 当 用 户 激 活 帮 助 时 由 框 架 调 用

OnInitDialog 当 初 始 化 属 性 页 时 由 框 架 调 用

OnObjectsChanged 当 选 择 了 其 它 具 有 新 属 性 的 OLE 控 件 时 由 框 架 调

OnSetPageSite 当 属 性 框 架 提 供 页 面 的 位 置 时 由 框 架 调 用

成 员 函 数

CO lePropertyPage::COlePropertyPage COlePropertyPage( UINT idDlg , UINT idCaption ); 参 数

idDlg

对 话 框 模 板 的 资 源 ID 。

idCaption

属 性 页 的 标 题 的 资 源 ID 。

说 明

当 你 实 现 COlePropertyPage 的 一 个 子 类 的 时 候 , 这 个 子 类 的 构 造 函 数 应 该 使 用COlePropertyPage 的 构 造 函 数 来 标 识 对 话 框 模 板 资 源 , 这 个 资 源 是 实 现 页 的 基础 , 并 且 字 符 串 资 源 包 含 了 它 的 标 题 。

CO lePropertyPage::GetControlStatus

BOOL GetControlStatus( UINT nID );

返 回 值

如 果 控 件 值 被 改 变 则 返 回 TRU E ; 否 则 返 回 FALSE 。

nID

一 个 实 现 页 控 件 的 资 源 ID 。

说 明

此 函 数 用 来 确 定 用 户 是 否 修 改 了 属 性 控 件 的 值 , 这 个 属 性 页 控 件 由 资 源 ID 确定 。

请 参 阅 COlePropertyPage::SetControlStatus

CO lePropertyPage::GetObjectArray

LPDISPATCH FAR* GetObjectArray( ULONG FAR* pnObjects );

指 向 一 个 IDispatch 指 针 数 组 的 指 针 , 该 指 针 数 组 用 来 访 问 属 性 页 面 上 的 每 一 个控 件 的 属 性 。 调 用 者 不 用 释 放 这 些 接 口 指 针 。

参 数

pnObjects

指 向 一 个 无 符 号 长 整 型 数 的 指 针 , 此 整 型 数 用 来 接 收 被 这 个 页 面 编 辑 的 对象 数 。

说 明

每 个 属 性 页 面 对 象 维 持 一 个 指 针 数 组 , 这 些 指 针 指 向 被 页 面 编 辑 的 对 象 的ID ispatch 接 口 。 这 个 函 数 将 它 的 参 数 pnObjects 设 置 为 指 针 数 组 的 元 素 个 数 , 并 返 回 一 个 指 向 数 组 中 的 第 一 个 元 素 的 指 针 。

CO lePropertyPage::GetPageSite

LPPROPERTYPAGESITE GetPageSite();

返 回 值

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

说 明

此 函 数 用 来 获 取 一 个 指 向 属 性 页 的 IPropertyPageSite 接 口 的 指 针 。

控 件 和 容 器 互 相 配 合 , 以 使 用 户 能 够 浏 览 和 修 改 控 件 的 属 性 。 控 件 提 供 属 性 页面 , 每 一 个 页 面 都 是 一 个 OLE 对 象 , 允 许 用 户 编 辑 一 个 相 关 的 属 性 集 合 。 容器 提 供 一 个 用 来 显 示 属 性 页 面 的 属 性 框 架 。 对 应 每 一 个 页 面 , 属 性 框 架 提 供 一个 页 面 位 置 , 它 支 持 IPropertyPageSite 接 口 。

CO lePropertyPage::IgnoreApply

void IgnoreApply( UINT nID );

参 数

nID

将 被 忽 略 的 控 件 的 ID 。

说 明

只 有 当 属 性 页 控 件 的 值 被 改 变 时 , 属 性 页 上 的 Apply 按 钮 才 会 被 使 能 。 这 个 函数 用 来 指 定 一 些 控 件 , 即 使 这 些 控 件 的 值 被 改 变 了 , 也 不 会 引 起 Apply 按 钮 被使 能 。

CO lePropertyPage::IsModified

BOOL IsModified ();

返 回 值

如 果 属 性 页 被 修 改 则 返 回 TRU E 。

说 明

此 函 数 用 来 确 定 用 户 是 否 改 变 了 属 性 页 上 的 值 。

请 参 阅 COlePropertyPage::SetModifiedFlag

virual BOOL OnEditProperty( DISPID dispid );

返 回 值

缺 省 实 现 返 回 FALSE 。 重 载 这 个 函 数 后 将 返 回 TRUE 。

参 数

dispid

被 编 辑 的 属 性 的 分 配 ID 。

说 明

当 一 个 特 定 的 属 性 被 编 辑 时 框 架 调 用 这 个 函 数 。 为 了 将 焦 点 设 置 到 页 面 上 特 定的 控 件 中 , 你 可 以 重 载 这 个 函 数 。 缺 省 的 实 现 什 么 也 不 做 , 并 返 回 FALSE 。

virtual BOOL OnHelp( LPCTSTR lpszHelpDir );

返 回 值

缺 省 实 现 返 回 FALSE 。

参 数

lpszHelpDir

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

说 明

当 用 户 请 求 联 机 帮 助 的 时 候 框 架 调 用 这 个 函 数 。 在 用 户 访 问 帮 助 的 时 候 , 如 果你 的 属 性 页 面 需 要 执 行 任 何 特 定 的 操 作 , 请 重 载 这 个 函 数 。 缺 省 的 实 现 什 么 也

不 做 并 返 回 FALSE , 这 指 示 框 架 去 调 用 W inHelp 。

CO lePropertyPage::OnInitDialog

virtual BOOL OnInitDialog();

返 回 值

缺 省 实 现 返 回 FALSE 。

说 明

当 属 性 页 的 对 话 框 被 初 始 化 时 , 框 架 调 用 这 个 函 数 。 如 果 在 对 话 框 被 初 始 化 时需 要 执 行 任 何 特 定 的 操 作 , 请 重 载 这 个 函 数 。 缺 省 的 实 现 调 用 了CDialog::OnInitDialog, 返 回 FALSE 。

请 参 阅 CDialog::OnInitDialog

CO lePropertyPage::OnObjectsChanged

virtual void OnObjectsChanged();

说 明

当 在 开 发 环 境 中 查 看 一 个 OLE 控 件 的 属 性 时 , 一 个 无 模 式 对 话 框 被 用 来 显 示它 的 属 性 页 面 。 如 果 选 择 了 另 一 个 控 件 , 就 必 须 显 示 一 个 具 有 不 同 设 置 的 属 性页 面 用 来 显 示 一 个 新 的 属 性 集 合 。 框 架 调 用 这 个 函 数 来 通 知 属 性 页 面 这 个 改变 。

CO lePropertyPage::OnSetPageSite

virtual void OnSetPageSite();

当 属 性 框 架 提 供 了 属 性 页 的 页 面 位 置 时 , 框 架 调 用 这 个 函 数 。 缺 省 的 实 现 载 入页 面 的 标 题 , 并 尝 试 从 对 话 框 资 源 来 确 定 页 面 的 大 小 。 如 果 你 的 属 性 页 需 要 任何 进 一 步 的 动 作 , 请 重 载 这 个 函 数 。

请 参 阅 COlePropertyPage::GetPageSite

CO lePropertyPage::SetControlStatus

BOOL SetControlStatus( UINT nID , BOOL IsDirty );

返 回 值

如 果 指 定 的 控 件 已 被 设 置 则 返 回 TRUE ; 否 则 返 回 FALSE 。

nID

包 含 一 个 属 性 页 控 件 的 ID 。

IsDirty

表 明 属 性 页 的 某 个 域 是 否 被 修 改 。 如 果 域 被 修 改 则 被 设 置 为 TRUE , 如果 还 没 有 被 修 改 则 被 设 置 为 FALSE 。

说 明

这 个 函 数 用 来 改 变 属 性 页 控 件 的 状 态 。

当 属 性 页 被 关 闭 或 Apply 按 钮 被 选 择 时 , 如 果 属 性 页 控 件 的 状 态 是 变 脏 了 的 , 则 控 件 的 属 性 将 会 被 用 适 当 的 值 更 新 。

请 参 阅 COlePropertyPage::GetControlStatus

CO lePropertyPage::SetDialogResource void SetDialogResource( HGLOBAL hDialog ); 参 数

hDialog

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

说 明

此 函 数 用 来 设 置 属 性 页 的 对 话 框 资 源 。

CO lePropertyPage::SetHelpInfo

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

参 数

lpszDocString

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

lpszHelpFile

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

dwHelpContext

属 性 页 的 帮 助 上 下 文 。

说 明

这 个 函 数 用 来 为 属 性 页 指 定 “ 工 具 提 示 ” 信 息 , 帮 助 文 件 名 , 和 帮 助 上 下 文 。

请 参 阅 COlePropertyPage ::OnHelp

CO lePropertyPage::SetModifiedFlag

void SetModifiedFlag( BOOL bModified = TRUE );

参 数

bModified

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

说 明

此 函 数 用 来 表 明 用 户 是 否 修 改 了 属 性 页 面 。

请 参 阅 COlePropertyPage::IsModified

CO lePropertyPage::SetPageName

void SetPageName( LPCTSTR lpszPageName );

参 数

lpszPageName

是 一 个 字 符 串 指 针 , 该 字 符 串 包 含 属 性 页 的 名 称 。

说 明

此 函 数 用 来 设 置 属 性 页 的 名 字 , 这 个 名 字 是 属 性 框 架 特 别 显 示 在 页 面 标 签 上的 。