一个人如何检查鼠标是否超过某个HWND?我已经尝试使用WM_Mouseleave和WM_MouseMove消息来保持跟踪,但是如果您单击一个按钮并将鼠标从按钮中拖出,它将不会接收WM_Mouseleave,直到释放鼠标为止,这为时已晚,因为:

单击按钮时,仅在以下方式时发送WM_COMMAND消息。
1.鼠标最初在按钮上沮丧
2.鼠标在按钮上
3.鼠标通过按钮释放

我需要复制此功能。

有帮助吗?

解决方案

要复制此功能,只需致电 SetCapture() 因此,即使鼠标离开它,鼠标消息也会发送到您的窗口。您可以在移动时读取当前的鼠标位置,并确定它是否仍在窗口/按钮上(我仍然不确定您在做什么)。而且,发布鼠标按钮时,您可以致电 ReleaseCapture() 恢复发送鼠标消息的位置。

编辑: 哦,您可以使用Windows API函数 WindowFromPoint() 确定鼠标结束的窗口。

其他提示

这是内置的Windows,称为“鼠标捕获”,SetCapture(HWND)。即使鼠标已移到窗口外,也可以确保您收到鼠标消息。您可以在WM_LBUTTONDOWN消息通知上调用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top