C O lePropertiesDialog

COlePropertiesDialog 类 封 装 了 W indows 通 用 的 OLE 对 象 属 性 对 话 框 。通 用 OLE 对 象 属 性 对 话 框 提 供 了 用 与 W indows 一 致 的 风 格 来 显 示 和 修 改 OLE 文 档 项 属性 的 简 单 方 法 。 这 些 属 性 包 括 , 文 档 项 所 代 表 的 文 件 的 信 息 , 用 于 显 示 按 比 例缩 放 的 图 标 和 图 像 的 属 性 , 以 及 有 关 项 的 链 接 的 信 息 ( 如 果 该 项 是 链 接 项 的话 ) , 还 有 其 它 一 些 。

为 了 使 用 一 个 COlePropertiesDialog 对 象 , 首 先 要 用 COlePropertiesDialog 构 造函 数 来 创 建 这 个 对 象 。 在 对 话 框 被 构 造 出 来 以 后 , 调 用 DoModal 成 员 函 数 来 显示 这 个 对 话 框 并 使 用 户 能 够 修 改 这 个 项 的 任 何 属 性 。 不 管 选 择 的 是 O K( IDOK ) 按 钮 还 是 Cancel ( IDCANCE L) 按 钮 DoModal 都 返 回 。 除 了 O K 和 Cancel 按钮 , 还 有 一 个 Apply 按 钮 。 当 用 户 选 择 了 Apply 按 钮 时 , 任 何 有 关 这 个 文 档 项的 属 性 的 变 化 都 应 用 到 这 个 项 中 , 其 图 像 就 会 自 动 被 更 新 , 但 是 它 仍 然 是 活 动的 。

m_psh 数 据 成 员 是 一 个 指 向 PROPSHEETHEADER 结 构 的 指 针 ,在 许 多 情 况 下 , 你 不 需 要 显 式 地 访 问 它 。 但 是 当 你 在 除 了 缺 省 的 Genera l, View 和 Link 页 外 需要 额 外 的 页 时 , 你 就 必 须 显 式 地 访 问 它 了 。 在 这 种 情 况 下 , 你 可 以 在 调 用DoModal 成 员 函 数 之 前 来 修 改 m_psh 数 据 成 员 , 使 它 包 括 你 的 定 制 页 。

如 果 要 获 取 更 多 的 有 关 OLE 对 话 框 的 信 息 , 请 参 见 “ V isual C++ 程 序 员 指 南 ” 一 书 中 的 文 章 “ OLE 中 的 对 话 框 ” 。

#include <afxodlgs.h>

请 参 阅 COleDialog , CPropertyPage

CO lePropertiesDialog 类 成 员

Construction

ColePropertiesDialog 构 造 一 个 COlePropertiesDialog 对象

Data Members

m_gp 用 来 初 始 化 COlePropertiesDialog 对 象 的 “ General “ 页 面的 结 构

m_lp 用 来 初 始 化 COlePropertiesDialog 对 象 的 “ Link “ 页 面 的 结构

m_op 用 来 初 始 化 COlePropertiesDialog 对 象 的 结 构

m_psh 用 来 增 加 额 外 的 定 制 属 性 页 面 的 结 构

m_vp 用 来 定 制 COlePropertiesDialog 对 象 的 “ V iew “ 页 面 的 结构

Operatio n DoModal 显 示 对 话 框 并 允 许 用 户 作 一 个 选 择

Overridable s OnApplyScale 当 文 档 项 的 缩 放 比 例 改 变 时 由 框 架 调 用

成 员 函 数

CO lePropertiesDialog:: COlePropertiesDialog

COlePropertiesDialog( COleClientItem* pItem , UINT nScaleMin = 10, UINT nScaleMax = 500, CWnd* pParentWnd = NULL );

参 数

pItem

指 向 一 个 正 被 访 问 的 文 档 项 的 指 针 。

nScaleMin

文 档 项 图 像 的 最 小 缩 放 比 例 百 分 比 。

nScaleMax

文 档 项 图 像 的 最 大 缩 放 比 例 百 分 比 。

pParentWnd

说 明

此 成 员 函 数 用 来 创 建 一 个 COlePropertiesDialog 对 象 。 为 了 使 你 的 文 档 项 能 够 实现 按 比 例 缩 放 , 请 从 COlePropertiesDialog 类 来 派 生 你 的 通 用 OLE Object Properties 对 话 框 类 。 任 何 用 这 个 类 的 实 例 实 现 的 对 话 框 都 不 能 支 持 文 档 项 的 按比 例 缩 放 。

缺 省 的 , 通 用 OLE Object Properties 对 话 框 具 有 三 个 缺 省 的 页 面 :

  • General

此 页 面 包 含 了 选 中 的 文 档 项 所 代 表 的 文 件 的 系 统 信 息 。 在 这 一 页 上 , 用 户

可 以 把 选 中 的 项 转 换 为 其 他 的 类 型 。

  • View

此 页 面 包 含 了 显 示 这 个 文 档 项 , 改 变 图 标 , 以 及 改 变 图 像 的 缩 放 比 例 等 选

  • Link

此 页 面 包 含 了 改 变 链 接 项 的 位 置 和 更 新 链 接 项 的 选 项 。 在 这 个 页 面 上 , 用户 可 以 中 断 所 选 项 的 链 接 。

要 增 加 除 那 些 缺 省 页 面 之 外 的 页 面 , 在 退 出 你 的 COlePropertiesDialog 派 生 类 的构 造 函 数 之 前 修 改 m_psh 成 员 变 量 就 可 以 了 。 这 是 COlePropertiesDialog 构 造函 数 的 高 级 实 现 。

请 参 阅 COlePropertiesDialog::OnApplyScale

CO lePropertiesDialog::DoModal

virtual int DoModal();

返 回 值

如 果 成 功 则 返 回 ID O K 或 IDCANCEL ; 否 则 返 回 0 。 IDOK 和 IDCANCEL 都是常 量 , 它 们 指 示 用 户 是 选 择 了 O K 按 钮 还 是 Cancel 按 钮 。

如 果 返 回 的 是 IDCANCE L , 你 可 以 调 用 函 数 W indows CommDlgExtendedError

来 确 定 是 否 发 生 了 一 个 错 误 。

说 明

这 个 成 员 函 数 用 来 显 示 W indows 通 用 OLE Object Properties 对 话 框 , 并 允 许 用户 查 看 或 改 变 文 档 项 的 各 个 属 性 。

请 参 阅 COlePropertiesDialog::OnApplyScale , C olePropertiesDialog::m_psh

CO lePropertiesDialog::OnApplyScale

virtual BOOL OnApplyScale( COleClientItem* pItem , int nCurrentScale , BOOL b RelativeToOrig );

返 回 值

pItem

指 向 其 属 性 正 在 被 访 问 的 文 档 项 的 指 针 。

nCurrentScale

对 话 框 比 例 的 数 字 值 。

bRelativeToOrig

表 明 缩 放 比 例 是 否 适 用 于 文 档 项 的 原 始 大 小 。

说 明

当 缩 放 比 例 值 被 改 变 , 并 且 没 有 选 择 OK 或 Apply 时 , 由 框 架 调 用 这 个 函 数 。

注 意 在 通 用 OLE Object Properties 对 话 框 显 示 之 前 , 框 架 将 pItem 置 为 NULL ,将 nCurrentScale 置为 -1 来 调 用 这 个 函 数 。 这 用 来 决 定 是 否可 以 进 行 缩 放 比 例 控 制 。

请 参 阅 COlePropertiesDialog::DoModal

数 据 成 员

CO lePropertiesDialog::m_gp

说 明

是 一 个 OLEUIGNRLPROPS 类 型 的 结 构 , 它 用 来 初 始 化 OLE Object Properties

用 户 访 问 Convert 对 话 框 。 如 果 对 象 是 一 个 链 接 , 这 个 页 面 也 显 示 链 接 目 标 。如 果 要 获 取 更 多 有 关 OLEUIGNRLPROPS 结 构 的 信 息 , 请 参 见 OLE 文 档 。

CO lePropertiesDialog::m_lp

说 明

一 个 OLEUILINKPROPS 类 型 的 结 构 , 用 来 初 始 化 O LE Object Properties 对 话框 中 的 Link 页 面 。 此 页 面 显 示 了 被 链 接 项 的 位 置 , 并 允 许 用 户 更 新 或 中 断 指 向这 个 项 的 链 接 。

要 获 取 更 多 的 有 关 OLEUILINKPROPS 结 构 的 信 息 , 请 参 见 OLE 文 档 。

CO lePropertiesDialog::m_op

说 明

一 个 OLEUIOBJECTPROPS 类 型 的 结 构 , 用 来 初 始 化 OLE Object Properties 对话 框 中 的 Link 页 面 。 这 个 结 构 包 含 了 用 来 初 始 化 Genera l, Link 和 View 页面的 成 员 。

要 获 取 更 多 的 信 息 , 请 参 见 OLE 文 档 中 的 OLEOBJECTPROPS 和

OLEUILINKPROPS 结 构 。

CO lePropertiesDialog::m_psh

说 明

一 个 PROPSHEETHEADER 类 型 的 结 构 , 它 的 成 员 保 存 了 对 话 框 对 象 的 特 征 。

在 构 造 了 一 个 COlePropertiesDialog 对 象 之 后 , 在 调 用 DoModal 成 员 函 数 之 前 , 你 可 以 使 用 m_psh 来 设 置 对 话 框 的 不 同 方 面 。

要 获 取 更 多 有 关 PROPSHEETHEADER 结 构 的 信 息 , 参 见 Win32 SDK 文 档 。

请 参 阅 COlePropertiesDialog::DoModal

CO lePropertiesDialog::m_vp

说 明

一 个 OLEUIOBJECTPROPS 类 型 的 结 构 , 用 来 初 始 化 OLE Object Properties 对话 框 中 的 View 页 面 。 此 页 面 允 许 用 户 在 “ 内 容 ” 和 “ 图 标 ” 之 间 切 换 对 对 象的 查 看 , 并 在 容 器 内 改 变 它 的 缩 放 比 例 。 当 对 象 显 示 为 一 个 图 标 时 , 它 也 允 许用 户 访 问 Change Icon 对 话 框 。