Delphi: Как я могу проверить, нажаты ли какие-либо кнопки мыши - ВНЕ события мыши?

У меня есть TDrawGrid, и я хочу обрабатывать нажатие на ячейку и прокручивать ячейки с помощью колеса мыши немного по-другому: при прокрутке с помощью колеса мыши вид должен центрироваться на выбранной ячейке, при простом нажатии на ячейку вид не должен двигаться (потому что это будет сбивать с толку).

Прокрутка колесиком мыши запускает OnSelectCell событие. Щелчок по ячейке ПЕРВЫЕ пожары OnSelectCell, с последующим OnMouseDown, Так что мне нужно выяснить, если OnSelectCell был вызван щелчком мыши. Самый простой способ сделать это (о чем я могу подумать) - проверить текущее состояние кнопки мыши.

OnSelectCell не приходит с TMouseButton или же TShiftState параметр. Итак, как я могу запросить состояние кнопки мыши?

1 ответ

Решение

Использование GetKeyState прохождение VK_LBUTTON идентифицировать основную кнопку мыши. Если возвращаемое значение отрицательное, кнопка была выключена, когда система сгенерировала входное сообщение, которое привело к OnSelectCell Событие запускается.

Другие вопросы по тегам