Win32: Как отловить левую и правую кнопки мыши, нажатые одновременно

Я пытаюсь запрограммировать конкретное поведение, когда пользователь (нажимает и) отпускает левую и правую мышь одновременно. Есть ли известный способ отловить такое событие / жест. Я знаю, как перехватывать leftButtonUp и rightButtonUp, но не уверен, как я могу перехватить это событие.

Если левая кнопка нажата, а затем правая кнопка нажата с дельта-задержкой, это нормально. Когда пользователь отпускает правую кнопку / левую кнопку, и если после этого происходит отпускание другой кнопки в течение определенного времени, то такое событие должно вызываться.

1

Решение

В WinAPI такого события нет, но вы можете отследить его самостоятельно. WPARAM всех сообщений кнопки вниз / вверх содержит информацию о состоянии всех кнопок на момент события:

MK_LBUTTON 0x0001 The left mouse button is down.
MK_MBUTTON 0x0010 The middle mouse button is down.
MK_RBUTTON 0x0002 The right mouse button is down.

Таким образом, вам нужно отслеживать изменения и определять порог, который отфильтровывает все события, которые вы хотели бы рассматривать как «одновременный клик / отпуск»

1

Другие решения

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

0

If GetAsyncKey(0x01) && GetAsyncKey(0x02){
DoEvent();
}
0
По вопросам рекламы [email protected]