2013-08-28 1 views
4

Чтобы увидеть событие правого клика, я имею в виду, see this video.Отключить щелчок правой кнопкой мыши с помощью Touch и удерживать устройство Windows 7 Touchscreen

Я работаю над приложением, которое добавляет кнопку масштабирования в приложении Windows Forms. Когда пользователь прикасается к кнопке, приложение должно постоянно увеличивать масштаб окна. Это работает, наблюдая за нажатием кнопки мыши на кнопке. Пока мышь не работает, таймер продолжает увеличивать изображение. Это прекрасно работает, пока пользовательский палец скользит после первоначального касания. Однако, если пользователь нажимает на одно место все время, они получат небольшой круг ожидания, а затем щелчок правой кнопкой мыши.

Я добавил код от this link к применению:

public bool PreFilterMessage(ref Message m) 
{ 
    // Filter out WM_NCRBUTTONDOWN/UP/DBLCLK 
    if (m.Msg == 0xA4 || m.Msg == 0xA5 || m.Msg == 0xA6) return true; 
    // Filter out WM_RBUTTONDOWN/UP/DBLCLK 
    if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true; 
    return false; 
} 

Этот код отключает получившееся правую кнопку мыши события. Тем не менее, круг все еще происходит, и событие mousedown не происходит. Есть ли способ сделать любой физический контакт подсчетом как мышь вниз, а не начать процесс правого клика?


Редактировать Я попытался пойти Control Panel->Pen and Touch и выключение Нажмите и удерживайте для правой функции мыши. Это отключило значок вращения, но мышь все еще не появляется, если пользователь слегка не двигает пальцем. Я не понимаю, почему пользователь должен писать, чтобы удерживать кнопку.

ответ

0

Круг, показанный прикосновением, представляет собой жест, введенный в Windows 7 для правого щелчка. Он называется Press and Hold.

Если вы хотите полностью отключить этот жест, вам нужно сообщить операционной системе, вызвав функцию SetGestureConfig при инициализации вашей формы. Эта функция позволяет вам явно указывать, какие жесты поддерживаются вашим контролем.

0

Пожалуйста, попробуйте это, он работает для меня в Windows 10. Это не глобальное изменение системы, нажмите &. Удержание продолжит работу в ОС и других программах. Он отключает нажатие & удержание только для вашего окна.

. , ,

[DllImport("kernel32.dll", EntryPoint = "GlobalAddAtomA", CharSet=CharSet.Ansi)] 
static extern UInt16 GlobalAddAtom(string lpString); 

[DllImport("user32.dll", EntryPoint = "SetPropA", CharSet = CharSet.Ansi)] 
static extern UInt32 SetProp(IntPtr hWnd, UInt32 lpString, UInt32 hData); 

. , ,

UInt16 atom = GlobalAddAtom("MicrosoftTabletPenServiceProperty"); 
if (atom != 0) 
    SetProp(this.Handle, (UInt32)atom, 1); 

. , ,

 Смежные вопросы

  • Нет связанных вопросов^_^