1

有没有办法在 C++ 中使用 winapi 获取鼠标状态(位置、按钮状态)?我不想使用 Windows 消息(WM_MOUSEMOVE、WM_LBUTTONDOWN 等)。

谢谢!

4

2 回答 2

2

听起来您正在寻找GetCursorInfoGetKeyState。您使用指定感兴趣的鼠标按钮的虚拟键代码调用后者。

于 2011-01-21T12:10:46.187 回答
1

如果只需要光标位置,可以使用GetCursorPos ()。请记住,GetCursorInfo () 和 GetCursorPos() 都返回屏幕坐标。使用ScreenToClient () 转换为客户区偏移量。

虽然 OP 不想使用 Windows 消息,但我只是想提一些东西作为旁注。
我发现将光标位置作为消息处理程序的一部分(例如 WM_SETCURSOR),大多数文献建议使用GetMessagePos () 在发送消息时检索光标的位置。但是,它是鼠标移动之前的位置,而不是之后的位置。因此,当尝试在某个区域上进行鼠标悬停检测时,该位置返回“滞后”在像素后面。

于 2011-01-24T16:42:37.120 回答