我需要拦截正在发送到我的CHtmlView对象的粘贴消息。根据Spy ++,它是作为WM_COMMAND消息发送的 - 但是根据Spy ++,消息不会发送到CHtmlView对象,而是发送到它包装的Internet Explorer_Server(或IWebBrowser2)对象。在任何其他父对象中都看不到有问题的WM_COMMAND消息(我通过观察和通过Spy ++找到了这个消息)。
如何拦截此消息(甚至是全部选择)消息?我已经看过AfxCallWndProc以获取正确的WM_COMMAND消息,并且它没有显示在那里。
答案 0 :(得分:1)
要拦截消息(例如:WM_COMMAND),您需要通过调用以下方式对窗口进行子类化(在您的案例中为Internet Explorer_Server):
BOOL SetWindowSubclass(
_In_ HWND hWnd,
_In_ SUBCLASSPROC pfnSubclass,
_In_ UINT_PTR uIdSubclass,
_In_ DWORD_PTR dwRefData
);
http://msdn.microsoft.com/en-us/library/windows/desktop/bb773183(v=vs.85).aspx#set_windowsubclass
之后,您自己的Windows程序首先获取控件,然后您可以决定如何处理该消息。