Можно ли подавить события одного щелчка во время двойного щелчка? - PullRequest
0 голосов
/ 21 ноября 2018

Наше приложение поддерживает события одиночного и двойного щелчков в окне, которые делают разные вещи.Однако во время двойного щелчка мы всегда получаем событие одного щелчка, которое вызывает нежелательные эффекты.

Наше приложение находится в Qt, но на самом деле это вопрос о базовых API-интерфейсах Windows / Mac - это фундаментальная деталь того, чтоОС обнаруживает один щелчок, как только вы поднимаете палец, так как она не может знать, что вы нажмете второй раз, или это можно предотвратить?

Если это невозможно предотвратить, является ли ихпризнанная лучшая практика, как справиться с этим?

1 Ответ

0 голосов
/ 21 ноября 2018

Запустите таймер, когда вы получите WM_LBUTTONDOWN (или эквивалент Qt).Если вы получите WM_LBUTTONDBLCLK (или эквивалент Qt) до истечения таймера, отмените таймер и выполните действие двойного щелчка.В противном случае, когда истечет время таймера, выполните событие одного клика.

В Windows вы можете получить время двойного щелчка, используя GetDoubleClickTime().

Это самое лучшее, что вы можете сделать -Вы не можете предотвратить генерацию сообщения с одним щелчком в первую очередь на любой платформе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...