很抱歉,如果这个答案不完美,但随着问题的年龄和有多少人感兴趣,我想我会尝试一下,希望能帮助别人,即使不是OP。
我不确定 VML/Word 如何处理剪贴板数据。如果它在 Windows 剪贴板中放置了多种格式,一种是您想要的 HTML,另一种是 VML 格式,那么您很幸运,这应该可以工作。如果没有,那么您至少可以使用它来清理插入时的代码。
您需要查看IDocHostUIHandler::TranslateAccelerator。如果您还没有实现 IDocHostUIHandler,则需要实现。在加载 HTML 文档后,您可以使用ICustomDoc::SetUIHandler来注册它(如果您使用它,可以是一个空页面)。
在 TranslateAccelerator 中,您需要注意nCmdID == IDM_PASTE. 这是在用户将某些内容粘贴到 HTML 控件之前触发的,并且您可以在粘贴发生之前修改剪贴板内容。
您可以使用 GetClipboardData(RegisterClipboardFormat("HTML Format")) 之类的方法从剪贴板获取 HTML 格式。您可以使用 SetClipboardData 来替换剪贴板数据。
对于您的使用,如果您从Word复制后看到有多种剪贴板格式,您只需删除其中一种您不想要的格式即可。这样,当 HTML 控件完成粘贴时,它只会使用您想要的格式。
如果需要的话,我有代码示例,但它们是一个大型项目的一部分,并且某些部分使用了 Borland 的 VCL 库。我的代码检查剪贴板中的 CF_BITMAP 格式,并使用 PNG 文件转换为 HTML 格式。这样,将屏幕捕获粘贴到控件的用户将获得较小的 PNG 图像,而不是巨大的 BMP 文件。这个概念与您想要的大致相同。
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |