Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается пример жеста Windows Touch.
Пример 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;}
В следующем коде показано, как объект отображает диагональные линии в методе рисования.
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);
}
Связанные разделы
Приложение для работы с жестами Multi-touch (C#), Приложение для работы с жестами Multi-touch (C++), Образцы Windows Touch