COlePasteSpecialDialog 类

用于 OLE“选择性粘贴”对话框。

语法

class COlePasteSpecialDialog : public COleDialog

成员

公共构造函数

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

公共方法

名称 描述
COlePasteSpecialDialog::AddFormat 将自定义格式添加到应用程序可以粘贴的格式的列表中。
COlePasteSpecialDialog::AddLinkEntry 将新条目添加到支持的剪贴板格式的列表中。
COlePasteSpecialDialog::AddStandardFormats 将 CF_BITMAP、CF_DIB、CF_METAFILEPICT 以及根据需要将 CF_LINKSOURCE 添加到应用程序可粘贴的格式的列表中。
COlePasteSpecialDialog::CreateItem 使用指定的格式在容器文档中创建项。
COlePasteSpecialDialog::DoModal 显示 OLE 的“选择性粘贴”对话框。
COlePasteSpecialDialog::GetDrawAspect 指定是否将项绘制为图标。
COlePasteSpecialDialog::GetIconicMetafile 获取与此项的图标形式关联的图元文件的句柄。
COlePasteSpecialDialog::GetPasteIndex 获取用户选择的可用粘贴选项的索引。
COlePasteSpecialDialog::GetSelectionType 获取所选选择的类型。

公共数据成员

“属性” 描述
COlePasteSpecialDialog::m_ps OLEUIPASTESPECIAL 类型的结构,用于控制对话框的功能。

备注

要调用此对话框时,请创建类 COlePasteSpecialDialog 的对象。 构造 COlePasteSpecialDialog 对象后,你可以使用 AddFormatAddStandardFormats 成员函数向对话框添加剪贴板格式。 还可以使用 m_ps 结构来初始化对话框中的控件的值或状态。 m_ps 结构是 OLEUIPASTESPECIAL 类型的。

有关详细信息,请参阅 Windows SDK 中的 OLEUIPASTESPECIAL 结构。

有关特定于 OLE 对话框的详细信息,请参阅文章 OLE 中的对话框

继承层次结构

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

COleDialog

COlePasteSpecialDialog

要求

标头:afxodlgs.h

COlePasteSpecialDialog::AddFormat

调用此函数,可在“选择性粘贴”操作中将新格式添加到应用程序可支持的格式的列表。

void AddFormat(
    const FORMATETC& formatEtc,
    LPTSTR lpszFormat,
    LPTSTR lpszResult,
    DWORD flags);

void AddFormat(
    UINT cf,
    DWORD tymed,
    UINT nFormatID,
    BOOL bEnableIcon,
    BOOL bLink);

参数

fmt
对要添加的数据类型的引用。

lpszFormat
向用户描述格式的字符串。

lpszResult
描述在对话框中选择此格式后的结果的字符串。

flags
可用于此格式的各种不同链接和嵌入选项。 此标志是 OLEUIPASTEFLAG 枚举类型中一个或多个不同的值的按位组合。

cf
要添加的剪贴板格式。

tymed
可采用此格式的媒体的类型。 这是 TYMED 枚举类型中一个或多个值的按位组合。

nFormatID
标识此格式的字符串的 ID。 此字符串的格式是用一个“\n”字符分隔的两个单独的字符串。 第一个字符串与在 lpstrFormat 参数中传递的字符串相同,第二个字符串与 lpstrResult 参数相同

bEnableIcon
确定在列表框中选定此格式时是否启用“显示为图标”复选框的标志。

bLink
确定在列表框中选定此格式时是否启用“粘贴链接”单选按钮的标志。

备注

可调用此函数来添加标准格式(例如 CF_TEXT 或 CF_TIFF)或应用程序已向系统注册的自定义格式。 有关向应用程序粘贴数据对象的详细信息,请参阅数据对象和数据源:操作一文。

有关详细信息,请参阅 Windows SDK 中的 TYMED 枚举类型和 FORMATETC 结构。

有关详细信息,请参阅 Windows SDK 中的 OLEUIPASTEFLAG 枚举类型。

COlePasteSpecialDialog::AddLinkEntry

将新条目添加到支持的剪贴板格式的列表中。

OLEUIPASTEFLAG AddLinkEntry(UINT cf);

参数

cf
要添加的剪贴板格式。

返回值

包含新链接项的信息的 OLEUIPASTEFLAG 结构。

COlePasteSpecialDialog::AddStandardFormats

调用此函数,可在“选择性粘贴”操作中将以下剪贴板格式添加到应用程序可支持的格式的列表:

void AddStandardFormats(BOOL bEnableLink = TRUE);

参数

bEnableLink
确定是否将 CF_LINKSOURCE 添加到应用程序可粘贴的格式的列表的标志。

备注

  • CF_BITMAP

  • CF_DIB

  • CF_METAFILEPICT

  • 嵌入式对象

  • (可选)链接源

这些格式用于支持嵌入和链接。

COlePasteSpecialDialog::COlePasteSpecialDialog

构造 COlePasteSpecialDialog 对象。

COlePasteSpecialDialog(
    DWORD dwFlags = PSF_SELECTPASTE,
    COleDataObject* pDataObject = NULL,
    CWnd* pParentWnd = NULL);

参数

dwFlags
创建标志,包含使用“按位或”运算符组合的任意数量的以下标志:

  • PSF_SELECTPASTE - 指定调用对话框时,将首先选中“粘贴”单选按钮。 不能与 PSF_SELECTPASTELINK 结合使用。 这是默认值。

  • PSF_SELECTPASTELINK - 指定调用对话框时,将首先选中“粘贴链接”单选按钮。 不能与 PSF_SELECTPASTE 结合使用。

  • PSF_CHECKDISPLAYASICON - 指定调用对话框时,将首先选中“显示为图标”复选框。

  • PSF_SHOWHELP - 指定在调用对话框时,将显示“帮助”按钮。

pDataObject
指向要粘贴的 COleDataObject。 如果此值为 NULL,从剪贴板获取 COleDataObject

pParentWnd
指向对话框对象所属的父窗口对象或所有者窗口对象(CWnd 类型)。 如果为 NULL,对话框的父窗口将设置为主应用程序窗口。

备注

此函数仅构造一个 COlePasteSpecialDialog 对象。 要显示对话框,请调用 DoModal 函数。

有关详细信息,请参阅 Windows SDK 中的 OLEUIPASTEFLAG 枚举类型。

COlePasteSpecialDialog::CreateItem

创建在“选择性粘贴”对话框中选择的新项。

BOOL CreateItem(COleClientItem* pNewItem);

参数

pNewItem
指向一个 COleClientItem 实例。 不能为 NULL。

返回值

如果成功创建项,不为 0;否则为 0。

注解

仅应在 DoModal 返回 IDOK 后调用此函数。

COlePasteSpecialDialog::DoModal

显示 OLE 的“选择性粘贴”对话框。

virtual INT_PTR DoModal();

返回值

对话框的完成状态。 以下值之一:

  • 如果对话框成功显示,为 IDOK。

  • 如果用户取消了对话框,为 IDCANCEL。

  • 如果发生错误,为 IDABORT。 如果返回 IDABORT,请调用 COleDialog::GetLastError 成员函数以获取有关所发生错误类型的详细信息。 有关可能的错误的列表,请参阅 Windows SDK 中的 OleUIPasteSpecial 函数。

备注

如果要通过设置 m_ps 结构的成员来初始化各种对话框控件,则应在调用 DoModal 之前但在构造对话框对象之后执行此操作。

如果 DoModal 返回 IDOK,可以调用其他成员函数来检索用户在对话框中输入的设置或信息。

COlePasteSpecialDialog::GetDrawAspect

确定用户是否选择将所选的项显示为图标。

DVASPECT GetDrawAspect() const;

返回值

呈现对象所需的方法。

  • DVASPECT_CONTENT - 如果对话框关闭时未选中“显示为图标”复选框,返回该方法。

  • DVASPECT_ICON - 如果对话框关闭时选中“显示为图标”复选框,返回该方法。

注解

仅在 DoModal 返回 IDOK 后调用此函数。

有关绘图方面的详细信息,请参阅 Windows SDK 中的 FORMATETC 结构。

COlePasteSpecialDialog::GetIconicMetafile

获取与用户选择的项关联的图元文件。

HGLOBAL GetIconicMetafile() const;

返回值

如果在通过选择“确定”关闭对话框时,选定了“显示为图标”复选框,返回包含所选项的图标方面的图元文件的句柄;否则返回 NULL

COlePasteSpecialDialog::GetPasteIndex

获取与用户选择的项关联的索引值。

int GetPasteIndex() const;

返回值

用户选择的 OLEUIPASTEENTRY 结构的数组中的索引。 与执行粘贴操作时应使用的选定索引相对应的格式。

备注

有关详细信息,请参阅 Windows SDK 中的 OLEUIPASTEENTRY 结构。

COlePasteSpecialDialog::GetSelectionType

确定用户所做的选择的类型。

UINT GetSelectionType() const;

返回值

所做的选择的返回值。

备注

返回类型值由 COlePasteSpecialDialog 类中声明的 Selection 枚举类型指定。

enum Selection {
    pasteLink,
    pasteNormal,
    pasteOther,
    pasteStatic
    };

这些值的简要说明如下:

  • COlePasteSpecialDialog::pasteLink - 选中了“粘贴链接”单选按钮,并且所选格式为标准 OLE 格式。

  • COlePasteSpecialDialog::pasteNormal - 选中了“粘贴”单选按钮,并且所选格式为标准 OLE 格式。

  • COlePasteSpecialDialog::pasteOther - 所选格式不是标准 OLE 格式。

  • COlePasteSpecialDialog::pasteStatic - 所选格式为图元文件。

COlePasteSpecialDialog::m_ps

用于控制“选择性粘贴”对话框的行为的 OLEUIPASTESPECIAL 类型的结构。

OLEUIPASTESPECIAL m_ps;

备注

此结构的成员可以直接进行修改,也可以通过成员函数进行修改。

有关详细信息,请参阅 Windows SDK 中的 OLEUIPASTESPECIAL 结构。

另请参阅

MFC 示例 OCLIENT
COleDialog 类
层次结构图
COleDialog 类