设为首页 加入收藏

TOP

剪贴簿(二十一)
2010-12-30 21:14:24 来源: 作者: 【 】 浏览:19908
Tags:剪贴
览器应用程式有必要加入「剪贴簿浏览器链」,以便执行的所有剪贴簿浏览器都可以收到Windows发送给目前剪贴簿浏览器的讯息。当一个程式将自己注册为一个剪贴簿浏览器时,它就成为目前的剪贴簿浏览器。Windows把先前的目前浏览器视窗代号交给这个程式,并且此程式将储存这个代号。当此程式收到一个剪贴簿浏览器讯息时,它把这个讯息发送给剪贴簿链中下一个程式的视窗讯息处理程式。

剪贴簿浏览器的函式和讯息
 

程式透过呼叫SetClipboardViewer函式可以成为剪贴簿浏览器链的一部分。如果程式的主要作用是作为剪贴簿浏览器,那么这个程式在WM_CREATE讯息处理期间可以呼叫这个函式,该函式传回前一个目前剪贴簿浏览器的视窗代号。程式应该把这个代号储存在静态变数中:

如果在Windows的一次执行期间,您的程式成为剪贴簿浏览器的第一个程式,那么hwndNextViewer将为NULL。

不管剪贴簿中的内容怎样变化,Windows都将把WM_DRAWCLIPBOARD讯息发送给目前的剪贴簿浏览器(最近注册为剪贴簿浏览器的视窗)。剪贴簿浏览器链中的每个程式都应该用SendMessage把这个讯息发送到下一个剪贴簿浏览器。浏览器链中的最後一个程式(第一个将自己注册为剪贴簿浏览器的视窗)所储存的hwndNextViewer为NULL。如果hwndNextViewer为NULL,那么程式只简单地将控制项权还给系统而已,而不向其他程式发送任何讯息(不要把WM_DRAWCLIPBOARD讯息和WM_PAINTCLIPBOARD讯息混淆了。WM_PAINTCLIPBOARD是由剪贴簿浏览器发送给使用CF_OWNERDISPLAY剪贴簿资料格式的程式,而WM_ DRAWCLIPBOARD讯息是由Windows发往目前剪贴簿浏览器的)。

处理WM_DRAWCLIPBOARD讯息的最简单方法是将讯息发送给下一个剪贴簿浏览器(除非hwndNextViewer为NULL),并使视窗的显示区域无效:

首页 上一页 18 19 20 21 22 23 24 下一页 尾页 21/27/27
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC中各种后缀文件含义 下一篇对话方块

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: