Пример сенсорного жеста Windows (MTGestures)
В этом разделе описывается пример сенсорного жеста Windows.
В примере windows Touch Gesture показано, как использовать сообщения жестов для перевода, поворота и масштабирования прямоугольника, отображаемого интерфейсом графических устройств (GDI), путем обработки сообщения WM_GESTURE . На следующем снимке экрана показано, как выглядит пример при выполнении.
В этом примере сообщения жестов передаются обработчику жестов, который затем вызывает методы для рисования объектов для преобразования, поворота и масштабирования объекта, имеющего методы для обработки этих команд. Чтобы показать, как работает пример, рассмотрите действия по использованию команды касания двумя пальцами, чтобы включить или отключить диагональные линии в отрисовываемом поле. Пользователь выполняет жест касания двумя пальцами, который создает сообщение, обрабатываемое программой. При обработке сообщения он переключает логический переключатель для отрисовки диагонали на объекте рисования, а затем объект отрисовывает диагональные линии.
В следующем коде показано, как сообщения жестов передаются в обработчик жестов из метода WndProc.
case WM_GESTURE:
// The gesture-processing code is implemented in the CGestureEngine
// class.
return g_cGestureEngine.WndProc(hWnd,wParam,lParam);
break;
В следующем коде показано, как обработчик жестов обрабатывает команду касания двумя пальцами.
// Two-finger tap command
void CMyGestureEngine::ProcessTwoFingerTap(void)
{
if(_pcRect)
{
_pcRect->ToggleDrawDiagonals();
}
}
В следующем коде показано, как объект-документ переключает диагонали.
void ToggleDrawDiagonals(void){_bDrawDiagonals = !_bDrawDiagonals;}
В следующем коде показано, как объект отрисовывает диагональные линии в методе draw.
if(_bDrawDiagonals)
{
// draw diagonals
MoveToEx(hdc,ptRect[0].x,ptRect[0].y,NULL);
LineTo(hdc,ptRect[2].x,ptRect[2].y);
MoveToEx(hdc,ptRect[1].x,ptRect[1].y,NULL);
LineTo(hdc,ptRect[3].x,ptRect[3].y);
}
Связанные темы
Приложение мультисенсорных жестов (C#),мультисенсорное приложение жестов (C++), примерыwindows Touch