SetGestureConfig-Funktion (winuser.h)
Konfiguriert die Nachrichten, die aus einem Fenster für Windows-Touchgesten gesendet werden.
Syntax
BOOL SetGestureConfig(
[in] HWND hwnd,
[in] DWORD dwReserved,
[in] UINT cIDs,
[in] PGESTURECONFIG pGestureConfig,
[in] UINT cbSize
);
Parameter
[in] hwnd
Ein Handle für das Fenster zum Festlegen der Gestenkonfiguration.
[in] dwReserved
Dieser Wert ist reserviert und muss auf 0 festgelegt werden.
[in] cIDs
Eine Anzahl der Gestenkonfigurationsstrukturen, die übergeben werden.
[in] pGestureConfig
Ein Array von Gestenkonfigurationsstrukturen, die die Gestenkonfiguration angeben.
[in] cbSize
Die Größe der Gestenkonfigurationsstruktur (GESTURECONFIG).
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Verwenden Sie die GetLastError-Funktion , um erweiterte Fehlerinformationen abzurufen.
Hinweise
Wenn Sie nicht erwarten, die Gestenkonfiguration zu ändern, rufen Sie SetGestureConfig zur Fenstererstellungszeit auf. Wenn Sie die Gestenkonfiguration dynamisch ändern möchten, rufen Sie SetGestureConfig als Reaktion auf WM_GESTURENOTIFY Nachrichten auf.
Die folgende Tabelle zeigt die Bezeichner für Gesten, die vom dwID-Member der GESTURECONFIG-Struktur unterstützt werden. Beachten Sie, dass das Festlegen von dwID auf 0 angibt, dass globale Gestenkonfigurationsflags festgelegt sind.
Name | Wert | BESCHREIBUNG |
---|---|---|
GID_ZOOM | 3 | Konfigurationseinstellungen für die Zoomgeste. |
GID_PAN | 4 | Die Schwenkbewegung. |
GID_ROTATE | 5 | Die Drehbewegung. |
GID_TWOFINGERTAP | 6 | Die Geste mit zwei Fingern. |
GID_PRESSANDTAP | 7 | Die Geste zum Drücken und Tippen. |
Die folgenden Flags werden verwendet, wenn dwID auf 0 festgelegt ist.
Name | Wert | BESCHREIBUNG |
---|---|---|
GC_ALLGESTURES | 0x00000001 | Alle Gesten. |
Die folgenden Flags werden verwendet, wenn dwID auf GID_ZOOM festgelegt ist.
Name | Wert | BESCHREIBUNG |
---|---|---|
GC_ZOOM | 0x00000001 | Die Zoomgeste. |
Die folgenden Flags werden verwendet, wenn dwID auf GID_PAN festgelegt ist.
Name | Wert | BESCHREIBUNG |
---|---|---|
GC_PAN | 0x00000001 | Alle Schwenkgesten. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | 0x00000002 | Vertikale Schwenks mit einem Finger. |
GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY | 0x00000004 | Horizontale Schwenks mit einem Finger. |
GC_PAN_WITH_GUTTER | 0x00000008 | Schwenken mit einer Dachrinne um die Ränder des schwenkbaren Bereichs. Die Dachrinne begrenzt die senkrechte Bewegung zu einer Primärrichtung, bis ein Schwellenwert erreicht ist, der aus der Rinne ausbrechen kann. |
GC_PAN_WITH_INTERTIA | 0x00000010 | Schwenken mit Inertia, um reibungslos zu verlangsamen, wenn Schwenkgesten angehalten werden. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY
einen vertikalen Schwenk mit einem Finger aus dem dwBlock-Bit ermöglicht sowohl vertikales als auch horizontales Schwenken.
Name | Wert | BESCHREIBUNG |
---|---|---|
GC_ROTATE | 0x00000001 | Die Drehbewegung. |
Die folgenden Flags werden verwendet, wenn dwID auf GID_TWOFINGERTAP festgelegt ist.
Name | Wert | BESCHREIBUNG |
---|---|---|
GC_TWOFINGERTAP | 0x00000001 | Die Geste mit zwei Fingern. |
Die folgenden Flags werden verwendet, wenn dwID auf GID_PRESSANDTAP festgelegt ist.
Name | Wert | BESCHREIBUNG |
---|---|---|
GC_PRESSANDTAP | 0x00000001 | Die Geste zum Drücken und Tippen. |
Beispiele
Das folgende Beispiel zeigt, wie Sie eine horizontale und vertikale Verschiebung mit nur einem Finger ohne Rinne und ohne Schwung erhalten können. Dies ist eine typische Konfiguration für eine 2D-Navigationsanwendung wie die Microsoft PixelSense Globe-Anwendung.
// set up our want / block settings
DWORD dwPanWant = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY;
DWORD dwPanBlock = GC_PAN_WITH_GUTTER | GC_PAN_WITH_INERTIA;
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_ROTATE, GC_ROTATE, 0},
{ GID_PAN, dwPanWant , dwPanBlock}
};
UINT uiGcs = 3;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Das folgende Beispiel zeigt, wie Sie Schwenkgesten mit nur einem Finger empfangen und das Schwenken der Rinne deaktivieren. Dies ist eine typische Konfiguration für Anwendungen, die Text scrollen, z. B. Editor.
// set up our want / block settings
DWORD dwPanWant = GC_PAN | GC_PAN_WITH_SINGLE_FINGER_VERTICALLY;
DWORD dwPanBlock = GC_PAN_WITH_GUTTER;
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_ROTATE, GC_ROTATE, 0},
{ GID_PAN, dwPanWant , dwPanBlock}
};
UINT uiGcs = 3;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Das folgende Beispiel zeigt, wie Sie alle Gesten deaktivieren können.
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {0,0,GC_ALLGESTURES};
UINT uiGcs = 1;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Das folgende Beispiel zeigt, wie Sie alle Gesten aktivieren können.
GESTURECONFIG gc = {0,GC_ALLGESTURES,0};
UINT uiGcs = 1;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, &gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Das folgende Beispiel zeigt, wie Sie alle Windows 7-Gesten aktivieren können.
// set the settings in the gesture configuration
GESTURECONFIG gc[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_ROTATE, GC_ROTATE, 0},
{ GID_PAN, GC_PAN , 0},
{ GID_TWOFINGERTAP, GC_TWOFINGERTAP , 0},
{ GID_PRESSANDTAP, GC_PRESSANDTAP , 0}
};
UINT uiGcs = 5;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
Die folgende Beispielkonfiguration würde festlegen, dass das übergeordnete Fenster die Unterstützung für Zoom, horizontales Schwenken und vertikales Schwenken aktiviert, während das untergeordnete Fenster nur horizontal schwenken würde.
// set up our want / block settings for a parent window
DWORD dwPanWant = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY;
DWORD dwPanBlock = GC_PAN_WITH_GUTTER | GC_PAN_WITH_INERTIA;
// set the settings in the gesture configuration
GESTURECONFIG gcParent[] = {{ GID_ZOOM, GC_ZOOM, 0 },
{ GID_PAN, dwPanWant , dwPanBlock}
};
// Set the pan settings for a child window
dwPanWant = GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY;
dwPanBlock = GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_GUTTER | GC_PAN_WITH_INERTIA;
GESTURECONFIG gcChild[] = {{ GID_ZOOM, 0, GC_ZOOM },
{ GID_PAN, dwPanWant , dwPanBlock}
};
UINT uiGcs = 2;
BOOL bResult = FALSE;
if (isParent){
bResult = SetGestureConfig(hWnd, 0, uiGcs, gcParent, sizeof(GESTURECONFIG));
}else{
bResult = SetGestureConfig(hWnd, 0, uiGcs, gcChild, sizeof(GESTURECONFIG));
}
if (!bResult){
DWORD err = GetLastError();
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (windows.h einschließen) |
Bibliothek | User32.lib |
DLL | User32.dll |