GESTUREINFO-Struktur (winuser.h)
Speichert Informationen zu einer Geste.
Syntax
typedef struct tagGESTUREINFO {
UINT cbSize;
DWORD dwFlags;
DWORD dwID;
HWND hwndTarget;
POINTS ptsLocation;
DWORD dwInstanceID;
DWORD dwSequenceID;
ULONGLONG ullArguments;
UINT cbExtraArgs;
} GESTUREINFO, *PGESTUREINFO;
Member
cbSize
Die Größe der Struktur in Bytes. Der Aufrufer muss dies auf sizeof(GESTUREINFO)
festlegen.
dwFlags
Der Zustand der Geste. Weitere Informationen finden Sie unter Hinweise.
dwID
Der Bezeichner des Gestenbefehls.
hwndTarget
Ein Handle für das Fenster, auf das diese Geste abzielt.
ptsLocation
Eine POINTS-Struktur mit den Koordinaten, die der Geste zugeordnet sind. Diese Koordinaten sind immer relativ zum Ursprung des Bildschirms.
dwInstanceID
Ein intern verwendeter Bezeichner für die Struktur.
dwSequenceID
Ein intern verwendeter Bezeichner für die Sequenz.
ullArguments
Eine 64-Bit-Ganzzahl ohne Vorzeichen, die die Argumente für Gesten enthält, die in 8 Bytes passen.
cbExtraArgs
Die Größe der zusätzlichen Argumente, die diese Geste begleiten.
Hinweise
Das HIDWORD des ullArguments-Members ist immer 0, mit den folgenden Ausnahmen:
- Für GID_PAN ist es 0, außer wenn dieS nicht zu einer Unträgheit kommt. Wenn GF_INERTIA festgelegt ist, ist DAS HIDWORD ein Inertia vector (zwei 16-Bit-Werte).
- Für GID_PRESSANDTAP ist dies der Abstand zwischen den beiden Punkten.
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 DieTrägheit ausgelöst. |
GF_END | 0x00000004 | Eine Geste ist abgeschlossen. |
Name | Wert | BESCHREIBUNG |
---|---|---|
GID_BEGIN | 1 | Eine Geste wird gestartet. |
GID_END | 2 | Eine Geste endet. |
GID_ZOOM | 3 | 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. |
typedef GESTUREINFO const * PCGESTUREINFO;
Beispiele
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
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Kopfzeile | winuser.h (einschließlich Windows.h) |