我有一个与 Office 相当相关的 Office 插件(本机 C++)。我正在做的一件事是找到主窗口的 HWND,并将该窗口子类化。在各种情况下,我还 GetDC 那个窗口,并在 Office 文档上绘制我自己的东西。
我还在使用各种 Windows API 的 IAT 挂钩(相当标准)。
我有一个直接在 HDC 上绘制的“装饰”功能。在 Office 2010 之前,我在 Office 处理 WM_PAINT 以及 WM_KEYUP 之后立即调用了我的方法。那工作得很好。
从 Office 2013 开始,WinWord 在我无法跟踪的时候让客户区感到痛苦。此外,我什至找不到 Office 在重新绘制其客户区时使用的任何 GDI API。我在 DrawText (gdi) 或 DrawString (gdi+) 上挂了一个钩子。
据我所知,即使不调用 GetDC、BeginPaint 或 ReleaseDC,WinWord 也会重新绘制客户区(因此 - 删除我的装饰)!
我几乎没有想法。我会欣赏 Office 可以用来触摸屏幕的任何想法吗?我已设置为挂钩任何功能和/或 Windows 消息 - 只是找不到必须挂钩的内容。任何其他想法(不需要完整的解决方案 - 只需一个方向就可以了)。任何可以使用的工具(例如是否有任何类似于 FileMon 的 GDI 方法?)将不胜感激。