3

在 Windows(Windows 7 及更高版本)上获取鼠标光标位置或按钮状态的最合适方法是什么?我以前使用过 DirectInput,但我不再使用它并且不想使用它。我看到有 GetCursorPos,但是,我没有看到任何获取鼠标按钮状态的东西。我以前读过,对于实时应用程序来说,仅读取窗口消息(例如 WM_LBUTTONUP)被认为是“慢”的,所以我不知道任何其他选项。

4

2 回答 2

7

如果要轮询/查询当前光标位置,可以使用GetCursorPos。要查看按钮状态,请使用GetAsyncKeyState

如果您在窗口中实现消息循环,您将收到的关于鼠标移动的通知是WM_MOUSEMOVE。您将通过此处列出的通知收到有关鼠标输入的通知。

于 2012-05-25T16:53:43.440 回答
3

WM_LBUTTONUP与任何窗口消息一样好,对于窗口游戏来说非常棒,因为它仅在鼠标单击客户区时生成,因此您可以自由调整窗口大小和移动窗口。

作为直接输入的替代方法,您可以使用需要更多代码来初始化的原始输入,但它是鼠标移动的最佳方式,因为WM_INPUT它是在物理鼠标移动时生成的,而不是光标,因此您可以剪辑将光标放在客户区域,而不必担心用户可能会点击剪辑矩形的一侧并且不会再生成鼠标移动消息。 关联

于 2012-05-25T16:48:26.407 回答