《Windows程序设计》之剪贴板查看器

本文深入探讨了剪贴板查看器链中的WM_DRAWCLIPBOARD与WM_PAINTCLIPBOARD的区别,以及如何通过ChangeClipboardChain和WM_CHANGECBCHAIN消息实现程序间的剪贴板交互。重点解释了退出剪贴板查看器链时的正确操作流程,确保消息传递的准确性和完整性。

注意的几点问题:

1、WM_DRAWCLIPBOARD 与WM_PAINTCLIPBOARD的区分,WM_PAINTCLIPBOARD是由剪贴板查看器发给使用CF_OWNERDISPLAY剪贴板格式的程序的。

WM_DRAWCLIPBOARD则是由Windows发给当前剪贴板查看器的。

2、当程序想从剪贴板查看器链中退出时,必须调用ChangeClipboardChain,Windows会向当前剪贴板查看器发送一个WM_CHANGECBCHAIN消息。

当程序收到WM_CHANGECBCHAIN消息,则必须检查wParam是否等于你保存的hwndNextViewer值。相等,则把hwndNextViewer设为lParam。这个操作确保将来你得到的任何WM_CHANGECBCHAIN消息不会被发送给从链里退出的那个窗口。(这部分不是太理解)如果wParam不等于hwndNextViewer,并且hwndNextViewer不为NULL,就把消息发送给下一个剪贴板查看器,如果hwndNextViewer值为NULL意味着执行这段代码的程序是链里最后一个剪贴板查看器,在这种情况下,消息不应该再传递。


第二段话不太懂,以后慢慢来理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值