Übersicht über Windows Touchgesten
In diesem Abschnitt werden die verschiedenen Gesten beschrieben, die von Windows Touch unterstützt werden.
Übersicht über Gesten
Windows Touch ermöglicht mehrere Gesten, die einzelne und mehrere Kontakte unterstützen. Die folgende Abbildung zeigt die verschiedenen Gesten, die in Windows 7 unterstützt werden.
Hinweis
Einige Erkennungen sind zuverlässiger bei der Interpretation von Gesten mit mehreren Kontakten, wenn sich die Kontakte weiter voneinander unterscheiden.
Legacysupport
Für die Legacyunterstützung ordnet der Standardgestenhandler einige Gesten windows-Nachrichten zu, die in früheren Versionen von Windows verwendet wurden. In der folgenden Tabelle wird beschrieben, wie Gesten Legacynachrichten zugeordnet werden.
Geste | BESCHREIBUNG | Generierte Nachrichten |
---|---|---|
Schwenken | Die Schwenkbewegung wird der Verwendung des Bildlaufrads zugeordnet. |
WM_VSCROLL WM_HSCROLL |
Drücken und Halten | Die Geste gedrückt halten, um mit der rechten Maustaste auf die Maus zu klicken. |
WM_RBUTTONDOWN WM_RBUTTONUP |
Zoom | Die Zoomgeste löst Nachrichten aus, die mit der STRG-TASTE vergleichbar sind, und drehen das Mausrad, um zu scrollen. | WM_MOUSEWHEEL mit MK_CONTROL im wParam festgelegt |
Interpretieren von Windows-Touchgesten
Windows Touchgesten können von Anwendungsentwicklern interpretiert werden, indem sie die WM_GESTURE Nachricht aus der WndProc-Funktion einer Anwendung behandeln. Nach der Behandlung dieser Nachricht können Sie eine GESTINFO-Struktur abrufen, die die Geste beschreibt. Die GESTINFO-Struktur enthält sortierte Informationen, die vom Typ der Geste abhängen.
Die GESTINFO-Struktur wird abgerufen, indem der Handle an die Gesteninformationsstruktur an die GetGestureInfo-Funktion übergeben wird.
Die folgenden Flags geben die verschiedenen Zustände der Gesten an und werden in dwFlags gespeichert.
Name | Wert | BESCHREIBUNG |
---|---|---|
GF_BEGIN | 0x00000001 | Eine Geste wird gestartet. |
GF_INERTIA | 0x00000002 | Eine Geste hat die Unträgheit ausgelöst. |
GF_END | 0x00000004 | Eine Geste ist abgeschlossen. |
Hinweis
Die meisten Anwendungen sollten die GID_BEGIN und GID_END ignorieren und an DefWindowProc übergeben. Diese Nachrichten werden vom Standardgestenhandler verwendet. Das Anwendungsverhalten wird nicht definiert, wenn die GID_BEGIN und GID_END Nachrichten von einer Drittanbieteranwendung genutzt werden.
Die folgende Tabelle gibt die verschiedenen Bezeichner für Gesten an.
Name | Wert | BESCHREIBUNG |
---|---|---|
GID_BEGIN | 1 | Eine Geste wird gestartet. |
GID_END | 2 | Eine Geste endet. |
GID_ZOOM | 3 | Die Zoombewegung. |
GID_PAN | 4 | Die Schwenkbewegung. |
GID_ROTATE | 5 | Die Drehbewegung. |
GID_TWOFINGERTAP | 6 | Die Geste mit zwei Fingern. |
GID_PRESSANDTAP | 7 | Die Geste drücken und tippen. |
Hinweis
Die GID_PAN Geste verfügt über integrierte Inträgheit. Am Ende einer Schwenkbewegung werden zusätzliche Verschiebungsgesten vom Betriebssystem erstellt.
Die GESTINFO-StrukturelementeptsLocation und ullArguments geben einen Punkt (mithilfe der POINTS-Struktur ) und zusätzliche Informationen zu Gesten je nach Geste an. In der folgenden Tabelle sind die Werte aufgeführt, die jedem Gestentyp zugeordnet sind.
Gesten-ID | ullArguments | ptsLocation |
---|---|---|
GID_ZOOM | Gibt den Abstand zwischen den beiden Punkten an. | Gibt die Mitte des Zooms an. |
GID_PAN | Gibt den Abstand zwischen den beiden Punkten an. | Gibt die aktuelle Position des Schwenks an. |
GID_ROTATE | Gibt den Drehwinkel an, wenn das GF_BEGIN Flag festgelegt ist. Andernfalls ist dies die Winkeländerung seit beginn der Drehung. Dies ist signiert, um die Richtung der Drehung anzugeben. Verwenden Sie die GID_ROTATE_ANGLE_FROM_ARGUMENT und GID_ROTATE_ANGLE_TO_ARGUMENT Makros, um den Winkelwert abzurufen und festzulegen. | Dies gibt die Mitte der Drehung an, die der stationäre Punkt ist, um den das Zielobjekt gedreht wird. |
GID_TWOFINGERTAP | Gibt den Abstand zwischen den beiden Fingern an. | Gibt die Mitte der beiden Finger an. |
GID_PRESSANDTAP | Gibt das Delta zwischen dem ersten Finger und dem zweiten Finger an. Dieser Wert wird in einer POINT-Struktur in den unteren 32 Bit des ullArguments-Members gespeichert. | Gibt die Position an, auf die der erste Finger abfällt. |