C O lePasteSpecialDialog
COlePasteSpecialDialog 类 用 于 OLE Paste Special 对 话 框 。 当 应 用 程 序 想 要 调 用这 个 对 话 框 时 , 可 创 建 一 个 COlePasteSpecialDialog 对 象 。 当 构 造 了COlePasteSpecialDialog 对 象 之 后 , 应 用 程 序 可 用 m_ps 结 构 来 初 始 化 对 话 框 各个 控 件 的 值 或 状 态 。 m_ps 结 构 是 OLEUIPASTESPECIAL 类 型 。
如 果 要 获 取 有 关 OLE 专 用 对 话 框 的 信 息 , 请 参 阅 “ Visual C++ 程 序 员 指 南 ” 一书 中 的 文 章 “ OLE 中 的 对 话 框 ” 。
#include <afxodlgs.h>
请 参 阅 COleDialog
CO lePasteSpecialDialog 类 成 员
Data Members
m_ps 一 个 控 件 对 话 框 功 能 的 OLEUIPASTESPECIAL 类型 的 结 构
Construction
ColePasteSpecialDialog 构 造 一 个 COlePasteSpecialDialog 对 象
Operations and Attributes
DoModal 显 示 OLE Paste Special 对 话 框
AddFormat 将 定 制 格 式 增 加 到 应 用 程 序 可 以 粘 贴 的 格 式 表 中
AddStandardFormats 将 CF_BITMAP , CF_DIB , CF_METAFILEPICT
和 CF_LINKSOURCE 增 加 到 应 用 程 序 的 可 粘 贴 格式 表 中
CreateItem 用 指 定 格 式 在 容 器 文 档 中 创 建 项
GetSelectionType 获 取 所 选 择 项 的 类 型
GetDrawAspect 判 定 是 否 将 项 绘 制 成 一 个 图 标 GetIconicMetafile 获 取 与 此 项 的 图 标 格 式 相 关 联 的 源 文 件 的 句 柄GetPasteIndex 获 取 用 户 选 择 的 可 用 粘 贴 项 的 索 引
成 员 函 数
CO lePasteSpecialDialog::AddFormat
void AddFormat( const FORMATETC& fm t , LPTSTR lpstrForma t, LP T STR lpstrResult , DWORD flags ) ;
void AddFormat( UINT c f, DWORD tymed , UINT nFormatID , BOOL bEnableIcon , BOOL b L ink );
参 数
fm t
对 要 添 加 的 数 据 类 型 的 引 用 。
lpstrFormat
向 用 户 描 述 格 式 的 字 符 串 。
lpstrResult
如 果 对 话 框 中 选 择 了 此 格 式 , 则 该 参 数 为 描 述 结 构 的 字 符 串 。
flags
指 定 此 格 式 可 用 的 不 同 链 接 和 嵌 入 项 。 此 标 志 是 一 个 或 多 个 不 同 的
OLEUIPASTE F- LAG 枚 举 值 的 位 或 组 合 。
cf
要 添 加 的 剪 贴 板 格 式 。
tymed
格 式 中 可 用 的 媒 介 类 型 。 它 是 一 个 或 多 个 TYMED 枚 举 值 的 位 或 组 合 。
n rormatID
标 识 格 式 的 字 符 串 的 ID 。 这 个 格 式 字 符 串 是 两 个 “ \n ” 字 符 间 隔 的 独 立字 符 串 。 第 一 个 字 符 串 与 lpstrFormat 参 数 中 传 递 的 字 符 串 相 同 ; 第 二 个字 符 串 与 lpstrResult 参 数 相 同 。
bEnableIcon
- 个 标 志 , 用 于 确 定 当 在 列 表 框 中 选 择 此 格 式 时 ,
Display As Icon 复 选 框是 否 活 动 。
bLink
- 个 标 志 , 用 于 确 定 当 在 列 表 框 中 选 择 此 格 式 时 , Paste
Link 单 选 按 钮 是否 活 动 。
说 明
这 个 函 数 将 几 种 新 格 式 增 加 到 应 用 程 序 可 在 Paste Special 操 作 中 支 持 的 格 式 表中 。 该 函 数 可 用 于 增 加 标 准 格 式 如 CF_TEXT 或 CF_TIFF , 也 可 用 于 增 加 应 用程 序 已 向 OLE 系 统 注 册 的 定 制 格 式 。 有 关 向 应 用 程 序 中 粘 贴 数 据 对 象 的 详 细信 息 , 参 考 “ Visual C++ 程 序 员 指 南 ” 一 书 中 的 文 章 “ 数 据 对 象 和 数 据 源 : 操作 ” 。
要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的 OLEUIPASTEFLAG
枚 举 类 型 。
请 参 阅 CO lePasteSpecialDialog::AddStandardFormats
CO lePasteSpecialDialog::AddStandardFormats
void AddStandardFormats( BOOL bEnableLink = TRUE );
参 数
bEnableLink
一 个 标 志 , 用 于 确 定 是 否 将 CF_LINKSOURCE 增 加 到 应 用 程 序 可 粘 贴 的格 式 表 中 。
说 明
此 函 数 用 于 将 一 系 列 剪 贴 板 格 式 增 加 到 应 用 程 序 在 Paste Special 操 作 中 可 支 持的 格 式 表 中 :
-
CF_BITMAP
-
CF_DIB
-
CF_METAFILEPICT
-
“ 嵌 入 对 象 ( Embedded Object ) ”
-
( 可 选 ) “ 链 接 源 ( Link Source )” 这 些 格 式 是 用 来 支 持
嵌 入 和 链 接 的 。
请 参 阅 COlePasteSpecialDialog::AddFormat
CO lePasteSpecialDialog::COlePasteSpecialDialog
COlePasteSpecialDialog( DWORD dwFlags = PSF_SELECTPASTE, COleDataObject* pDataObject = NULL, CWnd* pParentWnd = NULL );
参 数
dwFlags
创 建 标 志 , 包 含 下 列 标 志 中 的 任 意 多 个 , 各 值 之 间 用 位 或 O R 操 作 符 组
-
PSF_SELECTPASTE 表 明 当 调 用 对 话 框 时 , Paste 单 选 按 钮 被
初 始 选中 。 该 标 志 不 能 和 PSF_SELECTPASTELINK 一 起 使 用 。 它 是 缺 省 值 。
-
PSF_SELECTPASTELINK 表 明 当 调 用 对 话 框 时 , Paste Link 单 选
按钮 被 初 始 选 中 。 该 标 志 不 能 与 PSF_SELECTPASTE 一 起 使 用 。
-
PSF_CHECKDISPLAYASICON 表 明 当 调 用 对 话 框 时 ,Display As Icon
复 选 框 被 初 始 选 中 。
- PSF_SHOWHELP 表 明 当 调 用 对 话 框 时 , 将 显 示 Help 按 钮 。
pDataObject
指 向 剪 贴 板 上 的 COleDat a Object 对 象 。
pParentWnd
指 向 对 话 框 对 象 所 属 的 父 或 属 主 窗 口 对 象 ( CWnd 类 型 ) 。 如 果 该 参 数
说 明
此 函 数 只 创 建 COlePasteSpecialDialog 对 象 。 要 显 示 此 对 话 框 , 需 调 用 DoModal
函 数 。
要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的 OLEUIPASTEFLAG
枚 举 类 型 。
请 参 阅 COleDataObject , COlePasteSpecialDialog::DoModal
CO lePasteSpecialDialog::CreateItem
BOOL CreateItem( COleClientItem* pNewItem );
返 回 值
如 果 创 建 成 功 则 返 回 非 零 值 ; 否 则 返 回 0 。
参 数
pNewItem
指 向 一 个 COleClientItem 实 例 。 该 参 数 不 能 是 NULL 。
说 明
此 函 数 创 建 在 Paste Special 对 话 框 中 所 选 择 的 新 项 。 该 函 数 只 应 在 DoModal 返回 IDOK 之 后 被 调 用 。
请 参 阅 COleClientItem , ColePasteSpecialDialog::Do M oda l,
COlePasteSpecialDialog::GetSelectionType, COlePasteSpecialDialog:: COlePasteSpecialDialog
CO lePasteSpecialDialog::DoModal
virtual int DoModal();
返 回 值
对 话 框 完 成 的 状 态 。 它 可 以 是 下 列 值 之 一 :
-
IDOK 如 果 成 功 显 示 了 对 话 框 。
-
IDCANCEL 如 果 用 户 取 消 了 对 话 框 。
-
IDABORT 如 果 返 回 的 是 IDABORT , 则 要 调 用
COleDialog::GetLastError 成 员 函 数 来 获 取 有 关 所 发 生 的 错 误 类 型 的 进 一 步 信 息 。 可 能 发 生 的 错 误 的列 表 , 请 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的 O leUIPasteSpecial 函 数 。
说 明
此 函 数 用 来 显 示 OLE Paste Special 对 话 框 。
如 果 你 想 通 过 设 置 m_ps 结 构 的 成 员 函 数 来 初 始 化 不 同 的 对 话 框 控 件 , 则 你 必须 在 调 用 DoModal 之 前 , 但 在 构 造 了 对 话 框 对 象 之 后 进 行 。
如 果 DoModal 返回 IDOK , 则 你 可 以 调 用 其 它 成 员 函 数 来 获 取 各 个 设 置 或 由 用户 在 对 话 框 中 输 入 的 信 息 。
请 参 阅 COleDataObjec t, COleDialog::GetLastError, CDialog::DoModal, COlePasteSpecialDialog:: COlePasteSpecialDialog , COlePasteSpecialDialog::GetDrawAspect, COlePasteSpecialDialog::GetIconicMetafile ,
COlePasteSpecialDialog::GetPasteIndex ,
COlePasteSpecialDialog::GetSelectionType CO lePasteSpecialDialog::GetDrawAspect DVASPECT GetDrawAspect() const;
返 回 值
返 回 用 来 显 示 对 象 的 方 法 。
-
DVASPECT_CONTENT 如 果 当 对 话 框 消失 时 , Display As Icon 复 选
框 未被选 择 , 则 返 回 此 值 。
-
DVASPECT_ICON 如 果 当 对 话 框 消 失 时 , Display As Icon 复 选
框 被 选 择 , 则 返 回 此 值 。
说 明
此 函 数 用 来 确 定 用 户 是 否 选 择 了 将 所 选 项 显 示 为 一 个 图 标 。 仅 在 DoModal 返 回
ID O K 后 才 调 用 这 个 函 数 。
要 获 取 更 多 有 关 绘 制 方 面 的 信 息 , 请 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的
请 参 阅 COlePasteSpecialDialog::DoModal
CO lePasteSpecialDialog::GetIconicMetafile
HGLOBAL GetIconicMetafile() const;
返 回 值
如 果 在 选 择 O K 取 消 对 话 框 时 , D isplay As Icon 复 选 框 被 选 择 , 则 返 回 值 为 包含 所 选 项 的 图 标 特 征 的 源 文 件 句 柄 ; 否 则 返 回 值 为 NULL 。
说 明
此 函 数 获 取 与 用 户 所 选 项 相 关 联 的 源 文 件 。
请 参 阅 COlePasteSpecialDialog::GetDrawAspect ,
CO lePasteSpecialDialog::GetPasteIndex
int GetPasteIndex() const;
返 回 值
返 回 值 为 用 户 所 选 项 在 OLEUIPASTEENTRY 结 构 数 组 中 的 索 引 。 在 执 行 粘 贴操 作 时 , 将 使 用 对 应 于 所 选 索 引 的 格 式 。
说 明
此 函 数 获 取 与 用 户 所 选 项 相 关 的 索 引 值 。
如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2.01 用 户 接 口 库 ” 中 的
OLEUIPASTEENTRY 结 构 。
CO lePasteSpecialDialog::GetSelectionType
UINT GetSelectionType() const;
返 回 值
返 回 所 作 的 选 择 的 类 型 。
说 明
此 函 数 用 来 决 定 用 户 所 作 的 选 择 的 类 型 。
返 回 类 型 的 值 由 Selection 枚 举 类 型 指 定 , 该 枚 举 类 型 是 在
COlePasteSpecialDialog 类 中 声 明 的 。
enum Selection
{
pasteLink, pasteNormal, pasteOther, pasteStatic,
};
有 关 这 些 值 的 简 短 说 明 如 下 所 示 :
-
COlePasteSpecialDialog::pasteLink Paste Link 单 选 按 钮 被 选 择 ,
所 选 的 格式 是 一 个 标 准 的 OLE 格 式 。
-
COlePasteSpecialDialog::pasteNormal Paste 单 选 按 钮 被 选 择 , 所
选 的 格 式是 一 个 标 准 的 OLE 格 式 。
-
COlePasteSpecialDialog::pasteOther 被 选 择 的 格 式 不 是 一 个 标
准 的 格 式 。
-
COlePasteSpecialDialog::pasteStatic 被 选 择 的 格 式 是 一 个 图 元
文 件 。
请 参 阅 COlePasteSpecialDialog::DoModal
数 据 成 员
CO lePasteSpecialDialog::m_ps
说 明
此 数 据 成 员 是 一 个 OLEUIPASTESPECIAL 类 型 的 结 构 , 用 于 控 制 P as te Special
对 话 框 的 行 为 。 该 结 构 的 成 员 可 以 被 直 接 修 改 , 也 可 以 通 过 成 员 函 数 修 改 。
请 参 阅 COlePasteSpecialDialog:: COlePasteSpecialDialog, COlePasteSpecialDialog::DoModal