Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
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. |