在Windows(Windows 7和更高版本)上獲取鼠標光標位置或按鈕狀態的最合適方式是什麼?我以前使用DirectInput,但我不再使用它,不希望。我看到有GetCursorPos,但是,我沒有看到任何獲取鼠標按鈕狀態的東西。我之前讀過的,只是閱讀窗口消息(如WM_LBUTTONUP)被認爲是實時應用程序的「緩慢」,所以我不知道任何其他選項。在Windows上獲取鼠標光標位置和按鈕狀態
1
A
回答
5
如果要輪詢/查詢當前光標位置,可以使用GetCursorPos。要查看按鈕狀態,請使用GetAsyncKeyState。
如果您正在窗口中實現消息循環,您將獲得鼠標移動的通知是WM_MOUSEMOVE。您將通過列出的通知here收到鼠標輸入通知。
2
WM_LBUTTONUP
與任何窗口消息一樣好,因爲窗口化遊戲非常棒,因爲它僅在鼠標單擊客戶區時才生成,所以您可以自由調整窗口大小並移動窗口。
作爲替代直接輸入,你可以用它佔用更多的代碼來初始化原料投入,但它去與鼠標的移動,因爲WM_INPUT
產生的最佳途徑當物理移動鼠標,而不是光標,因此您可以將光標剪輯到客戶端區域,而不用擔心用戶可能撞到剪輯矩形的一側,並且鼠標移動消息不會再生成。 link
相關問題
- 1. 獲取鼠標光標位置的windows組件名稱
- 2. 鼠標按鈕狀態
- 3. Qt Windows獲取鼠標光標圖標
- 4. 如何在按鈕上獲取鼠標位置?
- 5. 從鼠標光標位置
- 6. 如何獲取svg和鼠標光標位置正確
- 7. 獲取鼠標按鈕狀態在後臺
- 8. 在C Sharp中獲取鼠標按鈕的狀態
- 9. 如何在Java中獲取鼠標按鈕狀態?
- 10. 在鍵上獲取光標位置
- 11. 在window.resize上獲取鼠標位置
- 12. 在Flex Panel上獲取鼠標位置
- 13. 鼠標光標在Javascript中的位置?
- 14. 獲取光標位置
- 15. SWT獲取光標位置
- 16. firemonkey設置鼠標光標位置
- 17. 確定鼠標按鈕開關狀態
- 18. Java檢查鼠標按鈕狀態
- 19. OpenGl獲取鼠標位置
- 20. 獲取鼠標位置
- 21. onMouseMove獲取鼠標位置
- 22. 如何獲取鼠標光標在曲線上的位置對應的值?
- 23. 如何在Windows Forms C#中僞造鼠標光標位置?
- 24. 如何從Windows中的鼠標鉤子設置光標位置?
- 25. 如何在C上設置鼠標光標位置?
- 26. 在mac上的visual studio中設置鼠標光標位置
- 27. 在鼠標光標下獲取字
- 28. WinAPI獲取鼠標光標圖標
- 29. 鼠標光標位置改變
- 30. PyGame從位圖設置鼠標光標
如果我正確記得,'GetCursorPos'將是最後處理的消息中的當前值。如果你想讓鍵狀態與位置保持一致,你應該使用'GetKeyState',它也是最後處理的消息的當前狀態。 –
@AdrianMcCarthy:不,「GetCursorPos」與「GetAsyncKeyState」一起使用,「GetMessagePos」與「GetKeyState」一起使用。 – jamesdlin
@ jamesdlin:啊,謝謝你的糾正。 –