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
对象后,你可以使用 AddFormat 和 AddStandardFormats 成员函数向对话框添加剪贴板格式。 还可以使用 m_ps 结构来初始化对话框中的控件的值或状态。 m_ps
结构是 OLEUIPASTESPECIAL 类型的。
有关详细信息,请参阅 Windows SDK 中的 OLEUIPASTESPECIAL 结构。
有关特定于 OLE 对话框的详细信息,请参阅文章 OLE 中的对话框。
继承层次结构
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 结构。