进一步到我的post https://stackoverflow.com/q/8695081/744588在自定义格式剪贴板上,我正在考虑编写自己的自定义剪贴板监视组件的可能性。
声明之前:
ClipboardWindow:=SetClipboardViewer(Form1.Handle);
我在示例代码中看到我研究了以下代码片段:
OpenClipboard(Form1.Handle);
EmptyClipboard;
CloseClipboard;
而其他的则根本不包含清洁代码。我很困惑。
我相信Clipbrd.TClipboard.Clear
只是用 VCL 的方式做同样的事情。
My question is:
加入之前清除剪贴板时clipboard chain
是强制性的 ?
不,不需要清除剪贴板。确实,你不应该。其他剪贴板监视器将对更新做出不必要的反应,并且用户可能想要粘贴您刚刚销毁的内容。
此外,剪贴板链监控不仅仅是将您自己添加到链中。您必须将事件传递到下一个窗口(来自 SetClipboardViewer 的结果句柄),并且您必须在应用程序退出时将自己从链中删除,不得失败。另外,您需要避免不必要地阻塞剪贴板。通常,这意味着等待注册剪贴板事件,直到您准备好实际处理事件。例如,如果您随后要打开一个对话框询问用户想要将数据存储在哪里、是否有许可证密钥等,请不要将其作为启动中的第一件事。
我在这里有一些技巧以及常见的陷阱:http://www.clipboardextender.com/developing-clipboard-aware-programs-for-windows/6 http://www.clipboardextender.com/developing-clipboard-aware-programs-for-windows/6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)