none
剪贴板延迟提交,不粘贴也收到WM_RENDERFORMAT消息的问题。 RRS feed

  • 问题

  • 最近做的工作有关剪贴板延迟提交数据的方法,我清楚SetClipboardData时把第二个参数设为NULL,OpenClipboard时传入的窗口句柄会在粘贴时收到WM_RENDERFORMAT消息,但是我发现有个问题,如果设置了剪贴板延迟提交,可能在某个文件夹中,右键弹出菜单的时候,即使不粘贴,一样会收到WM_RENDERFORMAT消息,但可能我只是右键刷新一下,但并没有选择粘贴,这时候剪贴板绑定的窗口句柄就收到了WM_RENDERFORMAT消息,如果这时候就把数据写入剪贴板,是并不理想的,这个情况如何处理呢?
    2018年6月29日 13:26

全部回复

  • Hi,

    感谢在MSDN论坛发帖。

    >>最近做的工作有关剪贴板延迟提交数据的方法,我清楚SetClipboardData时把第二个参数设为NULL,OpenClipboard时传入的窗口句柄会在粘贴时收到WM_RENDERFORMAT消息,但是我发现有个问题,如果设置了剪贴板延迟提交,可能在某个文件夹中,右键弹出菜单的时候,即使不粘贴,一样会收到WM_RENDERFORMAT消息,但可能我只是右键刷新一下,但并没有选择粘贴,这时候剪贴板绑定的窗口句柄就收到了WM_RENDERFORMAT消息,如果这时候就把数据写入剪贴板,是并不理想的,这个情况如何处理呢?

    根据下面的文档对WM_RENDERFORMAT消息的描述,响应WM_RENDERFORMAT消息时,剪贴板所有者在调用SetClipboardData之前不得打开剪贴板。目的则是为了避免你遇到的情况。

    https://docs.microsoft.com/zh-cn/windows/desktop/dataxchg/wm-renderformat

    建议你遵照文档中的要求,在相应结束后再进行剪贴板的操作。

    谢谢你的理解与支持。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年7月2日 6:56