Freigeben über


WM_GESTURE Nachricht

Übergibt Informationen zu einer Geste.

Parameter

wParam

Stellt Informationen zur Identifizierung des Gestenbefehls und gestenspezifischer Argumentwerte bereit. Diese Informationen sind die gleichen Informationen, die im ullArguments-Member der GESTUREINFO-Struktur übergeben werden.

lParam

Stellt ein Handle für Informationen bereit, die den Gestenbefehl und die gestenspezifischen Argumentwerte identifizieren. Diese Informationen werden durch Aufrufen von GetGestureInfo abgerufen.

Rückgabewert

Wenn eine Anwendung diese Nachricht verarbeitet, sollte sie 0 zurückgeben.

Wenn die Anwendung die Nachricht nicht verarbeitet, muss sie DefWindowProc aufrufen. Andernfalls wird der Speicher der Anwendung verloren, da der Toucheingabehandle nicht geschlossen wird und der zugeordnete Prozessspeicher nicht freigegeben wird.

Bemerkungen

In der folgenden Tabelle sind die unterstützten Gestenbefehle aufgeführt.

Gesten-ID Wert (dwID) BESCHREIBUNG
GID_BEGIN 1 Gibt an, dass eine generische Geste beginnt.
GID_END 2 Gibt ein generisches Gestenende an.
GID_ZOOM 3 Gibt Zoomstart, Zoombewegung oder Zoomstopp an. Die erste GID_ZOOM Befehlsmeldung beginnt einen Zoom, verursacht jedoch keinen Zoom. Der zweite GID_ZOOM Befehl löst einen Zoom relativ zum Zustand aus, der im ersten GID_ZOOM enthalten ist.
GID_PAN 4 Gibt das Verschieben oder Starten des Schwenkens an. Der erste GID_PAN Befehl gibt einen Schwenkstart an, führt jedoch keine Verschiebung aus. Mit der zweiten GID_PAN Befehlsmeldung beginnt die Anwendung mit der Verschiebung.
GID_ROTATE 5 Gibt an, dass der Start verschoben oder gedreht wird. Die erste GID_ROTATE-Befehlsmeldung gibt an, dass eine Drehbewegung oder eine Drehung gestartet wird, aber nicht gedreht wird. Die zweite GID_ROTATE Befehlsmeldung löst einen Rotationsvorgang relativ zum Zustand aus, der im ersten GID_ROTATE enthalten ist.
GID_TWOFINGERTAP 6 Gibt eine Zwei-Finger-Tippen-Geste an.
GID_PRESSANDTAP 7 Gibt die Drücken-und-Tippen-Geste an.

Hinweis

Um die Legacyunterstützung zu aktivieren, müssen Nachrichten mit den Befehlen GID_BEGIN und GID_END Gesten mithilfe von DefWindowProc weitergeleitet werden.

In der folgenden Tabelle sind die Gestenargumente angegeben, die in den Parametern lParam und wParam übergeben werden.

Gesten-ID Geste ullArgument ptsLocation in der GestureInfo-Struktur
GID_ZOOM Vergrößern/Verkleineren Gibt den Abstand zwischen den beiden Punkten an. Gibt die Mitte des Zooms an.
GID_PAN Schwenken Gibt den Abstand zwischen den beiden Punkten an. Gibt die aktuelle Position des Schwenks an.
GID_ROTATE Drehen (Pivot) Gibt den Drehwinkel an, wenn das flag GF_BEGIN festgelegt ist. Andernfalls ist dies die Winkeländerung seit Beginn der Drehung. Dies ist signiert, um die Richtung der Drehung anzugeben. Verwenden Sie die makros GID_ROTATE_ANGLE_FROM_ARGUMENT und GID_ROTATE_ANGLE_TO_ARGUMENT , um den Winkelwert abzurufen und festzulegen. Dies gibt den Mittelpunkt der Drehung an. Dabei handelt es sich um den stationären Punkt, um den das Zielobjekt gedreht wird.
GID_TWOFINGERTAP Tippen mit zwei Fingern Gibt den Abstand zwischen den beiden Fingern an. Gibt die Mitte der beiden Finger an.
GID_PRESSANDTAP Drücken und Tippen Gibt das Delta zwischen dem ersten Finger und dem zweiten Finger an. Dieser Wert wird in den unteren 32 Bits von ullArgument in einer POINT-Struktur gespeichert. Gibt die Position an, an der der erste Finger abfällt.

Hinweis

Alle Entfernungen und Positionen werden in physischen Bildschirmkoordinaten angegeben.

Hinweis

Die Parameter dwID und ullArgument sollten nur als Begleitdaten zu den GID_*-Befehlen betrachtet werden und nicht von Anwendungen geändert werden.

Beispiele

Der folgende Code veranschaulicht, wie Sie gestenspezifische Informationen erhalten, die dieser Nachricht zugeordnet sind.

Hinweis

Sie sollten unbehandelte Nachrichten immer an DefWindowProc weiterleiten und das Gesteneingabehandle für Nachrichten schließen, die Sie mit einem Aufruf von CloseGestureInfoHandle behandeln. In diesem Beispiel wird das Standardverhalten des Gestenhandlers unterdrückt, da das TOUCHINPUT-Handle in jedem der Gestenfälle geschlossen ist. Wenn Sie die Fälle im obigen Code für nicht behandelte Nachrichten entfernt haben, verarbeitet der Standardgestenhandler die Nachrichten, indem er im Standardfall an DefWindowProc weitergeleitet wird.

  LRESULT DecodeGesture(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
    // Create a structure to populate and retrieve the extra message info.
    GESTUREINFO gi;  
    
    ZeroMemory(&gi, sizeof(GESTUREINFO));
    
    gi.cbSize = sizeof(GESTUREINFO);

    BOOL bResult  = GetGestureInfo((HGESTUREINFO)lParam, &gi);
    BOOL bHandled = FALSE;

    if (bResult){
        // now interpret the gesture
        switch (gi.dwID){
           case GID_ZOOM:
               // Code for zooming goes here     
               bHandled = TRUE;
               break;
           case GID_PAN:
               // Code for panning goes here
               bHandled = TRUE;
               break;
           case GID_ROTATE:
               // Code for rotation goes here
               bHandled = TRUE;
               break;
           case GID_TWOFINGERTAP:
               // Code for two-finger tap goes here
               bHandled = TRUE;
               break;
           case GID_PRESSANDTAP:
               // Code for roll over goes here
               bHandled = TRUE;
               break;
           default:
               // A gesture was not recognized
               break;
        }
    }else{
        DWORD dwErr = GetLastError();
        if (dwErr > 0){
            //MessageBoxW(hWnd, L"Error!", L"Could not retrieve a GESTUREINFO structure.", MB_OK);
        }
    }
    if (bHandled){
        return 0;
    }else{
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
  }

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 R2 [nur Desktop-Apps]
Header
Winuser.h (windows.h einschließen)

Siehe auch

Benachrichtigungen

Windows-Programmierhandbuch für Touchgesten