2011-01-10 66 views
2

我有一个(父)窗口,其中一个子窗口是由另一个库(Ogre3d)创建的。窗口初始化使用纯粹的Win32 API。在父窗口中捕获WM_MOUSEMOVE事件

我想捕获我的父窗口中的鼠标输入,但它似乎是我的WM_MOUSEMOVE事件只能通过子窗口接收,这是有道理的,因为那会填满我所有的客户区域。

是否有方法在父窗口中捕获WM_MOUSEMOVE消息或(无干扰地)将这些消息从子窗口重定向?

+0

使用Spy ++可以验证您的父窗口是否获取鼠标消息?在这种情况下,它似乎永远不会。 – 2011-01-11 01:24:19

回答

4

如果您可以获得相关窗口的句柄,您可以subclass它。

简而言之,您将注册一个回调函数,该函数会在发送到子类窗口的所有消息中得到一个裂缝。

链接的文章应该让你到你需要的地方。

+5

我建议拦截“WM_NCHITTEST”并使其始终返回“HTTRANSPARENT”。然后,父母将收到`WM_MOUSEMOVE`消息,你不需要翻译坐标。 – finnw 2011-01-11 04:01:57