剪贴板是什么(剪贴板Clipboard是什么)( 二 )


4)多元性剪贴板中可以同时存放多种格式的数据,各自放在全局内存的不同位置;剪贴板中的数据有标准格式/预定义格式的,如文本、位图、Wav声音……,也有非标准格式/用户自定义格式,比如word中的域和公式、Excel中的图表 。
5)可检索性对于每种在剪贴板中存放过的格式,Windows都会给它分配一个独特的长整型编号,通过这个编号可以知道对应的数据格式的名称(GetClipboardFormatName),或者查询对应的数据在剪贴板中是否存在(
IsClipBoardFormatAvailable),如果存在,还可以通过这个编号找到对应的数据在内存中存放的位置(GetClipboardData) 。
对于标准格式,这个编号是固定的,可以通过VB6自带的APIViewer查询以CF_开头的常量得到,比如:
Public Const CF_TEXT = 1
Public Const CF_BITMAP = 2
Public Const CF_METAFILEPICT = 3
Public Const CF_SYLK = 4
……
对于非标准格式,这个编号由提供此格式数据的应用程序给此格式定义一个名称,然后将此名称传递给RegisterClipboardFormat函数,如果此名称已经存在,函数将返回此名称对应的编号,如果此名称不存在,函数将返回一个之前未使用的编号,在系统关机重启之前,这个名称和编号可以一直使用下去 。
6)可监视性有一组特别的窗口可以持续监视剪贴板内的数据变化,这组窗口被称作剪贴板观察程序(ClipboardViewer),由它们构成的这个小圈子叫作剪贴板观察程序链ClipBoardViewerChain,每当剪贴板内数据发生变化时,windows将向消息链中的第一个窗口发送一个WM_DRAWCLIPBOARD消息,再由它转发给第二个……直至消息到达消息链中的最后一个窗口 。同样,当消息链中的成员发生变化时,每个窗口都会收到一个WM_CHANGECBCHAIN消息;通过SetClipboardViewer函数,应用程序可以将自己的窗口句柄告诉windows,从而注册成为剪贴板观察程序链中的一员;通过ChangeClipboardChain函数,应用程序可以退出剪贴板观察程序链,而不影响它后面的窗口继续接收相关消息 。


这讲我简单地介绍了一些剪切板相关的知识,对于大家掌握和利用这个知识点是十分有益的 。其实不仅是对于VBA的理解,对于其他的语言也都大体一致 。因为我参考的都是权威的论述 。
3 剪贴板Clipboard一般操作从上面的分析我们可以得到下面的结论,剪贴板可用于存储文本和图像等数据 。由于所有活动进程都共享剪贴板,因此它可用于在这些活动进程之间传输数据 。使用 Clipboard 对象可轻松访问剪贴板并从中读取和向其写入数据 。我们可以利用的操作有:从剪贴板读取数据;确定存储在剪贴板中的文件类型;清除剪贴板的数据;将数据写入剪贴板 。


本节知识点回向:
1 什么是剪贴板?
② 剪贴板的特点是什么?
③ 剪贴板的操作有哪些?
剪贴板是什么(剪贴板Clipboard是什么)
文章图片


积木编程的思路内涵:在我的系列书籍中一直在强调"搭积木"的编程思路,这也是学习利用VBA的主要方法,特别是职场人员,更是要采用这种方案 。其主要的内涵:
1 代码不要自己全部的录入 。你要做的是把积木放在合适的位置然后去修正代码,一定要拷贝,从你的积木库中去拷贝,然后修正代码,把时间利用到高效的思考上 。
2 建立自己的"积木库" 。平时在学习过程中,把自己认为有用的代码放在一起,多积累,在用到的时候,可以随时拿来 。你的积木库资料越多,你做程序的思路就会越广 。
剪贴板是什么(剪贴板Clipboard是什么)
文章图片