Ukázka gest dotykového ovládání Windows (MTGestures)
Tato část popisuje ukázku gest dotykového ovládání windows.
Ukázka dotykového gesta systému Windows ukazuje, jak pomocí zpráv gest přeložit, otočit a škálovat objekt vykreslený pomocí rozhraní grafického zařízení (GDI) zpracováním zprávy WM_GESTURE . Následující snímek obrazovky ukazuje, jak příklad vypadá při spuštění.
Pro tuto ukázku se zprávy gest předávají modulu gest, který pak volá metody nakreslených objektů k překladu, otočení a škálování objektu, který má metody pro zpracování těchto příkazů. Pokud chcete ukázat, jak ukázka funguje, zvažte postup použití příkazu dvou prstu pro povolení nebo zakázání diagonálních čar v vykresleném poli. Uživatel provede gesto klepnutí dvěma prsty, které vygeneruje zprávu, která je zpracována programem. Když je zpráva zpracována, přepne logickou hodnotu pro vykreslení diagonálů na nakreslený objekt a objekt pak vykresluje diagonální čáry.
Následující kód ukazuje, jak se zprávy gest předávají modulu gest z metody WndProc.
case WM_GESTURE:
// The gesture-processing code is implemented in the CGestureEngine
// class.
return g_cGestureEngine.WndProc(hWnd,wParam,lParam);
break;
Následující kód ukazuje, jak modul gest zpracovává příkaz dvou prstem klepnutím.
// Two-finger tap command
void CMyGestureEngine::ProcessTwoFingerTap(void)
{
if(_pcRect)
{
_pcRect->ToggleDrawDiagonals();
}
}
Následující kód ukazuje, jak nakreslený objekt přepíná diagonály.
void ToggleDrawDiagonals(void){_bDrawDiagonals = !_bDrawDiagonals;}
Následující kód ukazuje, jak objekt vykresluje diagonální čáry v jeho kreslicí metodě.
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);
}
Související témata
aplikace s více dotykovými gesty (C#), vícedotyková gesta aplikace (C++), ukázky dotykového ovládání systému Windows