在Windows(Windows 7及更高版本)上获取鼠标光标位置或按钮状态的最合适方法是什么?我之前使用的是DirectInput,但我不再使用它而且不希望这样。我看到有GetCursorPos,但是,我没有看到任何鼠标按钮状态。我以前读过,只是读取窗口消息(例如WM_LBUTTONUP)对于实时应用程序来说被认为是“慢”,所以我不知道任何其他选项。
答案 0 :(得分:6)
如果要轮询/查询当前光标位置,可以使用GetCursorPos。要查看按钮状态,请使用GetAsyncKeyState。
如果要在窗口中实现消息循环,则鼠标移动的通知为WM_MOUSEMOVE。通过列出here列出的通知,您将收到鼠标输入的通知。
答案 1 :(得分:3)
WM_LBUTTONUP
和任何窗口消息一样好,因为窗口游戏很棒,因为它只在鼠标点击客户区时生成,因此您可以自由调整大小并移动窗口。
作为直接输入的替代方法,您可以使用原始输入来占用更多代码进行初始化,但这是使用鼠标移动的最佳方式,因为物理时会生成WM_INPUT
鼠标移动,而不是光标,因此您可以将光标剪切在客户区域,而不必担心用户可能会碰到剪辑矩形的一侧,并且不再生成鼠标移动消息。
link