Udostępnij przez


Omówienie gestów dotyku systemu Windows

W tej sekcji opisano różne gesty obsługiwane przez funkcję Windows Touch.

Omówienie gestów

Funkcja Windows Touch umożliwia korzystanie z kilku gestów obsługujących pojedyncze i wiele kontaktów. Na poniższej ilustracji przedstawiono różne gesty obsługiwane w systemie Windows 7.

ilustracja przedstawiająca gesty obsługiwane przez Windows Touch w systemie Windows 7

Notatka

Niektóre systemy rozpoznawania są bardziej niezawodne w interpretowaniu gestów z wieloma punktami kontaktu, gdy są one bardziej oddalone od siebie.

Wsparcie dla starszych technologii

W celu zapewnienia zgodności z wcześniejszymi wersjami oprogramowania, domyślny program obsługi gestów mapuje niektóre gesty na komunikaty systemu Windows, które były używane w poprzednich wersjach systemu Windows. W poniższej tabeli przedstawiono sposób mapowania gestów na starsze komunikaty.

Gest Opis Wygenerowane komunikaty
Pan Gest przesuwania odpowiada użyciu kółka przewijania. WM_VSCROLL
WM_HSCROLL
Naciśnij i przytrzymaj Gest naciśnięcia i przytrzymania odpowiada kliknięciu prawym przyciskiem myszy. WM_RBUTTONDOWN
WM_RBUTTONUP
Zoom Gest powiększenia wyzwala komunikaty podobne do przytrzymywania CTRL i obracania kółka myszy do przewijania. WM_MOUSEWHEEL z MK_CONTROL ustawionym w wParam

Interpretowanie gestów dotyku systemu Windows

Gesty Windows Touch można interpretować przez deweloperów aplikacji, obsługując komunikat WM_GESTURE z funkcji WndProc aplikacji. Po obsłudze tego komunikatu można pobrać strukturę GESTUREINFO, która opisuje gest. Struktura GESTINFO będzie zawierać różne informacje, które zależą od typu gestu.

Struktura GESTUREINFO jest pobierana poprzez przekazanie uchwytu do struktury informacji o gestach do funkcji GetGestureInfo.

Następujące flagi wskazują różne stany gestów i są przechowywane w dwFlags.

Nazwa Wartość Opis
GF_BEGIN 0x00000001 Gest się rozpoczyna.
GF_INERTIA 0x00000002 Gest wywołał bezwładność.
GF_END 0x00000004 Gest został zakończony.

Notatka

Większość aplikacji powinna ignorować GID_BEGIN i GID_END i przekazywać je do DefWindowProc. Te komunikaty są używane przez domyślną procedurę obsługi gestów. Zachowanie aplikacji jest niezdefiniowane, gdy komunikaty GID_BEGIN i GID_END są używane przez aplikację innej firmy.

W poniższej tabeli przedstawiono różne identyfikatory gestów.

Nazwa Wartość Opis
GID_BEGIN 1 Zaczyna się gest.
GID_END 2 Gest kończy się.
GID_ZOOM 3 Gest powiększenia.
GID_PAN 4 Gest patelni.
GID_ROTATE 5 Gest rotacji.
GID_TWOFINGERTAP 6 Gest naciśnięcia dwóch palców.
GID_PRESSANDTAP 7 Gest naciśnięcia i stuknięcia.

Uwaga

Gest GID_PAN ma wbudowaną inercję. Na końcu gestu przesunięcia, dodatkowe komunikaty gestów przesunięcia są tworzone przez system operacyjny.

Elementy członkowskie GESTUREINFO struktury ptsLocation i ullArguments określają punkt (przy użyciu struktury POINTS) i dodatkowe informacje o gestach, zależnie od rodzaju gestu. W poniższej tabeli wymieniono wartości skojarzone z każdym typem gestu.

Identyfikator gestu ullArguments ptsLocation
GID_ZOOM Wskazuje odległość między dwoma punktami. Wskazuje środek powiększenia.
GID_PAN Wskazuje odległość między dwoma punktami. Wskazuje bieżącą pozycję patelni.
GID_ROTATE Wskazuje kąt obrotu, jeśli ustawiono flagę GF_BEGIN. W przeciwnym razie jest to zmiana kąta od rozpoczęcia obrotu. Jest to podpisane, aby wskazać kierunek rotacji. Użyj makr GID_ROTATE_ANGLE_FROM_ARGUMENT i GID_ROTATE_ANGLE_TO_ARGUMENT, aby uzyskać i ustawić wartość kąta. Wskazuje to środek obrotu, który jest punktem stacjonarnym, wokół którego obracany jest obiekt docelowy.
GID_TWOFINGERTAP Wskazuje odległość między dwoma palcami. Wskazuje środek dwóch palców.
GID_PRESSANDTAP Wskazuje różnicę między pierwszym a drugim palcem. Ta wartość jest przechowywana w strukturze POINT w niższych 32 bitach członu ullArguments. Wskazuje pozycję, na którą schodzi pierwszy palec.

gesty dotykowe systemu Windows