Перехват и отключение глобальных событий мыши - PullRequest
1 голос
/ 30 ноября 2011

У меня проблема с мышью.Время от времени это будет двойной щелчок, когда я только один щелчок.Я знаю, что это проблема с мышью, и я связался с производителем, все еще ожидая ответа.Но в то же время мне было интересно, есть ли способ узнать, когда дважды щелкнули левой кнопкой мыши в течение очень короткого периода времени (вероятно, 1-10 миллисекунд), и отключить второй щелчок.

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

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Информация о том, как предотвратить обработку сообщения мыши, содержится в документации по "функции обратного вызова LowLevelMouseProc" в MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644986(v=vs.85).aspx В частности, она говорит: "Если процедура подключения обработала сообщение, онаможет вернуть ненулевое значение, чтобы система не могла передать сообщение остальной части цепочки соединений или процедуре целевого окна. "Итак, если вы знаете о хуках Windows, вы знаете, как это сделать.

РЕДАКТИРОВАТЬ: На самом деле, теперь, когда я думаю об этом больше, вы не хотите сбрасывать события.Вы просто хотите превратить событие двойного клика в еще одно событие нажатия левой кнопки.Я верю, что вы можете сделать это из обработчика хука, и это сработает.Вы пробовали это?

0 голосов
/ 30 ноября 2011

В WinForms C # вы пишете обработчик событий, включающий мышь, получающую объект MouseEventArgs. Внутри вы можете получить доступ к определенной информации, например, сколько раз на нее щелкнули.

protected void RowClicked(object sender, MouseEventArgs evt)
{
    // Trigger it when the mouse was clicked only once
    if( evt.Button.Clicks == 1 ) {
        // ... more things ...
    }

    return;
}

Другие библиотеки GUI имеют другие возможности. Тем не менее, ваша проблема не имеет ничего общего с библиотеками GUI. Вы должны изменить чувствительность вашей мыши, в параметрах конфигурации вашей операционной системы. Например, в панели управления Windows вы можете изменить, сколько времени должно пройти между щелчком и другим, чтобы считаться двойным щелчком. В lUbuntu вы можете сделать то же самое, в Системном меню >> Настройки >> Клавиатура и мышь.

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