剪贴板:复制和粘贴数据
本主题介绍需要最小的工作实现复制到和粘贴将中的 OLE 应用程序的剪贴板。建议您在继续之前读取 数据对象和数据源 (OLE) 主题。
在可以实现复制或粘贴之前,必须在 " 编辑 " 菜单中必须先提供了处理复制,剪切和粘贴选项。
复制或剪切数据
对剪贴板中复制数据
确定复制的数据是否为本机数据或是一个嵌入或链接的项。
如果嵌入该数据或链接,请获取指向选定的 COleClientItem 对象。
如果数据是本机程序,并且应用程序是服务器,创建从 COleServerItem 派生的新对象包含选定数据。否则,请创建数据的一 COleDataSource 对象。
调用选定项的 CopyToClipboard 成员函数。
如果用户选择了剪辑操作而不是复制操作,从应用程序中删除选定的数据。
若要查看此顺序的示例,请参见 MFC OLE 示例程序 OCLIENT 和 HIERSVR的 OnEditCut 和 OnEditCopy 功能。注意这些示例维护指向当前所选数据,因此,步骤 1 中已完成。
粘贴数据
粘贴数据比复制该复杂,因为在粘贴需要选择该格式使用数据绑定到应用程序。
对于从剪贴板中粘贴数据
在的视图类,用于选择粘贴选项的处理用户的实现 OnEditPaste 从 " 编辑 " 菜单。
在 OnEditPaste 功能,请创建一 COleDataObject 对象并调用其 AttachClipboard 成员函数链接到数据的此对象剪贴板。
调用 COleDataObject::IsDataAvailable 检查特定格式是否可用。
或者,可以使用 COleDataObject::BeginEnumFormats 查找其他格式,直到找到一最适合您的应用程序。
执行布局中粘贴。
有关示例中使用的工作原理,请参见 OnEditPaste 成员函数的实现在 MFC OLE 示例程序定义的视图类的 OCLIENT 和 HIERSVR。
提示 |
---|
分隔粘贴操作的主要好处到其自身的功能是可以使用同一将代码粘贴数据,则在您的应用程序放置在拖放操作时。在 OCLIENT 和 HIERSVR,您的 OnDrop 功能还可以调用 DoPasteItem,重新使用来实现粘贴操作编写的代码。 |
处理在 " 编辑 " 菜单中粘贴特殊选择,请参见主题 在 OLE 的对话框。