您的位置:首页 >> 编程开发 >> Visual C++ >> 剪贴板操作 >> 正文
剪贴板操作 RSS
 

使用Visual C++实现OLE剪贴板

http://www.rdxx.com 05年07月27日 21:57 CSDN 我要投稿

关键词: 剪贴板 , Visual C++ , OLE , C++ , 剪贴

使用Visual C++实现OLE剪贴板

南京市随园8-2号702室

王珂

---- 一、概述

---- 在Windows操作系统中存在两种剪贴板机制:Windows标准剪贴板和OLE剪贴板机制。

---- 标准的Windows剪贴板是一个被所有Windows应用程序共享的系统服务,因此它并没有自己的句柄或类。但你可以通过CWnd类的成员函数来管理剪贴板。

---- 自从OLE(Object Linking and Embedding,对象链接和嵌入)诞生之后,Windows操作系统中便出现了第二种剪贴板机制——OLE剪贴板机制。标准的Windows剪贴板API(Application Programming Interface,应用程序编程接口)依然可用,但是他已经被OLE数据传输机制来实现了。OLE支持UDT(Uniform Data Transfer,统一数据传输),并可以通过拖放操作实现剪贴板的剪切、复制和粘贴等操作。OLE剪贴板除了拥有标准Windows剪贴板的性能外,还支持传输用户自定义的剪贴板格式,并能够在传输数据时绑定OLE格式(如字体、字号等)。OLE剪贴板机制将成为更为主要的数据传输机制。

---- 本文将简要叙述标准Windows剪贴板的实现,并将重点放在讨论如何通过Visual C++实现OLE剪贴板上。

---- 二、选择适当的剪贴板机制

---- 在选择使用何种剪贴板机制时通常应遵循下面的原则:

---- 如果应用程序在将来又可能具有新的性能(比如现在只需要传输纯文本,但将来有可能需要另外传输字体等特性),那么使用OLE剪贴板。

---- 如果你正在使用一个OLE应用程序,或者你希望使用任何OLE特性(如拖放等)那么你应当使用OLE剪贴板机制。

---- 如果你提供了OLE格式(如字体、字号等),那么使用OLE剪贴板机制。

---- 三、使用Windows标准剪贴板

---- 大多数Windows下的应用程序支持剪切或复制数据到Windows剪贴板中以及从剪贴板粘贴数据至目的地。在这个过程中,剪贴板数据格式在多种应用程序之间发生了变化。系统构架仅仅通过实现一些有限的类来支持一些有限的剪贴板格式,下表列出了Windows标准剪贴板支持的格式(第一列“值”将在下面的程序代码中使用)。

值		含义CF_BITMAP	一个对应于位图的句柄(HBITMAP)。CF_DIB		一个包含BITMAPINFO结构并且跟着位图数据的内存对象。CF_DIF		数据交互格式CF_DSPBITMAP	有一个私有格式的位图显示格式。CF_DSPENHMETAFILE	有一个私有格式的增强的元文件的显示格式。CF_DSPMETAFILEPICT	有一个私有格式的元图显示格式。CF_DSPTEXT	有一个私有格式的文本显示格式。CF_ENHMETAFILE	一个增强的元文件(HENHMETAFILE结构)的句柄。CF_GDIOBJFIRST到 CF_GDIOBJLAST	应用软件定义的一系列GDI对象的整型值。CF_HDROP	一个HDROP类型的句柄,用来标识一列文件。CF_METAFILEPICT	一个使用METAFILEPICT结构定义的元图文件的句柄。CF_OEMTEXT	预定义的字符的文本格式,每一行都绑定一个CR-LF字符,并且用一个空字符表示数据结尾。CF_OWNERDISPLAY	剪贴板拥有者的显示格式,剪贴板的拥有者必须显示并且更新剪贴板的观察器窗口,并且接收WM_ASKCBFORMATNAME、WM_HSCROLLCLIPBOARD、WM_PAINTCLIPBOARD、WM_SIZECLIPBOARD以及 WM_VSCROLLCLIPBOARD等消息,hMem参数必需为NULL。CF_PALETTE	调色板的句柄CF_PRIVATEFIRST到CF_PRIVATELAST	私有的剪贴板格式的整型值。CF_RIFF	能够提交比CF_WAVE标准波表文件格式更为复杂的音频数据CF_SYLK	微软公司的SYLK(Symbolic Link,符号链接)格式CF_TEXT	文本格式CF_WAVE	使用一种标准波表文件格式如11kHz或22kHz等PCM(Pulse Code Modulation,脉冲编码调制器)提交音频数据。CF_TIFF	TIFF图形格式CF_UNICODETEXT	Unicode文本格式(注意:仅适用于Windows NT或Windows 2000操作系统)
---- 表1 常用的标准剪贴板格式

---- 要编写一个实现剪切和复制命令的函数,就要在你的应用程序中实现选定操作;要编写一个实现粘贴命令的函数,就需要请求剪贴板来检测它是否包含你的应用程序能够支持的数据。下面的代码实现了复制命令,其它实现可仿照进行,在此不再赘言。

共3页  1 2 3


 
 
标签: 剪贴板 , Visual C++ , OLE , C++ , 剪贴 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站