Что является наиболее подходящим способом получения положения курсора мыши или состояния кнопки в Windows (Windows 7 и выше)? Я ранее использовал DirectInput, но я больше не использую его и не хочу. Я видел, что есть GetCursorPos, однако я ничего не вижу для получения состояний кнопок мыши. Я читал ранее, что просто чтение оконных сообщений (например, WM_LBUTTONUP) считалось «медленным» для приложений реального времени, поэтому я не знаю ни одного другого варианта.Получение положения курсора мыши и состояния кнопки в Windows
ответ
Если вы хотите опросить/запросить текущую позицию курсора, вы можете использовать GetCursorPos. Чтобы увидеть состояния кнопок, используйте GetAsyncKeyState.
Если вы выполняете цикл сообщений в окне, уведомление, которое вы получите для движения мыши, равно WM_MOUSEMOVE. Вы будете уведомлены о входах мыши через перечисленные уведомления here.
WM_LBUTTONUP
подходит как для любого окна, так и для оконных игр, потому что он генерируется только тогда, когда мышь нажимает на клиентскую область, поэтому вы можете изменять размер и перемещать окно свободно.
В качестве альтернативы прямому вводу вы можете использовать исходные входы, которые требуют инициализации еще одного кода, но это лучший способ передвижения с мышью, так как WM_INPUT
генерируется, когда физическая мышь перемещается, а не курсор, поэтому вы можете кликнуть курсор в области клиента, не беспокоясь о том, что пользователь может попасть в сторону клипа rect, и сообщения движения мыши больше не будут генерироваться. link
- 1. Каков наиболее эффективный способ отслеживания положения курсора мыши в Windows?
- 2. Настройка положения курсора мыши программно в wxPython
- 3. Изменение положения курсора мыши в полноэкранном режиме
- 4. Получение положения мыши в C#
- 5. Изменение положения курсора/курсора
- 6. Позиционирование DIV относительно положения курсора мыши
- 7. Поворот дел до положения курсора мыши
- 8. Изменение положения курсора мыши на сфокусированное управление
- 9. Получение абсолютного положения курсора в tkinter
- 10. Изменение положения курсора в TMemo
- 11. Получение и настройка положения курсора UITextField и UITextView в Swift
- 12. Получение состояния кнопки в XCUITest
- 13. Масштабирование в игровом мире, получение положения мыши
- 14. Надежное получение и установка положения курсора/каретки в редактируемом div
- 15. Расчет положения курсора в C#
- 16. Получение состояния кнопки Toggle
- 17. масштабирование в зависимости от положения курсора в колесико мыши
- 18. Получение недопустимого исключения состояния курсора в java
- 19. Установка положения курсора
- 20. Функция boolean для определения положения кнопки мыши
- 21. Добавить класс Css в зависимости от положения курсора мыши
- 22. Получение скорости курсора мыши в C#
- 23. Получение положения мыши относительно прокручиваемой сетки
- 24. Получение положения мыши на увеличенном изображении
- 25. изображения перемещения в зависимости от положения курсора мыши
- 26. Перемещение курсора мыши в Windows Forms
- 27. Настройка положения мыши?
- 28. Повернуть сетку вокруг положения курсора?
- 29. Slick2D: Изменение чувствительности мыши к изменению положения курсора x/y
- 30. Отслеживание курсора мыши в QWidget
Если я правильно помню, 'GetCursorPos' будет текущим с последнего обработанного сообщения. Если вы хотите, чтобы состояние ключа было согласовано с позицией, вы должны использовать 'GetKeyState', который также является текущим по состоянию на последнем обработанном сообщении. –
@AdrianMcCarthy: Нет, 'GetCursorPos' идет с' GetAsyncKeyState', а 'GetMessagePos' идет с' GetKeyState'. – jamesdlin
@jamesdlin: Ах, спасибо за исправление. –