Для обработки сенсорных жестов, таких как сжатие, я вызываю метод SetGestureConfig
в WndProc
методе переопределения, доступном в элементе управления.
Я хотел бы использовать этот метод только для сжатия жеста вместо GC_ALLGESTURES.
Вот код
switch (m.Msg)
{
case WM_GESTURENOTIFY:
{
GESTURECONFIG gc = new GESTURECONFIG();
gc.dwID = 0;
gc.dwWant = GC_ALLGESTURES;
gc.dwBlock = 0;
bool result = SetGestureConfig(
handle,
0,
1,
ref gc,
_gestureConfigSize
);
if (!result)
{
throw new Exception("Error in execution of SetGestureConfig");
}
}
break;
//... other codes if any
}
Перед использованием этого кода, когда я касаюсь и перемещаю пальцы на элементе управления, будет вызван OnMouseMove
метод переопределения элемента управления. Но после использования этого кода это не так.
Я работаю с функциями, связанными с жестами, такими как сдавливание, панорамирование и т. Д. По отдельности, и все работает нормально.
Панорамирование должно происходить только после защемления жеста. Если жест жеста выполняется на элементе управления, то панорамирование должно выполняться при касании. Если жест управления не выполняется для элемента управления, то я ожидаю, что событие перемещения мыши по умолчанию сработает во время сенсорного перемещения
Но вызов метода SetGestureConfig
не вызывает событие перемещения мыши по умолчанию.
Должен ли я вручную вызывать OnMouseMove
во время панорамирования, которое происходит без защемления? Или же необходимо внести какие-либо изменения в вызов метода SetGestureConfig
, чтобы избежать блокировки OnMouseMove
во время панорамирования.