Funzione SetGestureConfig (winuser.h)
Configura i messaggi inviati da una finestra per i movimenti di Windows Touch.
Sintassi
BOOL SetGestureConfig(
[in] HWND hwnd,
[in] DWORD dwReserved,
[in] UINT cIDs,
[in] PGESTURECONFIG pGestureConfig,
[in] UINT cbSize
);
Parametri
[in] hwnd
Handle per la finestra in cui impostare la configurazione del movimento.
[in] dwReserved
Questo valore è riservato e deve essere impostato su 0.
[in] cIDs
Conteggio delle strutture di configurazione dei movimenti passate.
[in] pGestureConfig
Matrice di strutture di configurazione dei movimenti che specificano la configurazione del movimento.
[in] cbSize
Dimensioni della struttura di configurazione del movimento (GESTURECONFIG).
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni sull'errore estese, usare la funzione GetLastError .
Commenti
Se non si prevede di modificare la configurazione del movimento, chiamare SetGestureConfig in fase di creazione della finestra. Se si vuole modificare dinamicamente la configurazione del movimento, chiamare SetGestureConfig in risposta a WM_GESTURENOTIFY messaggi.
La tabella seguente illustra gli identificatori per i movimenti supportati dal membro dwID della struttura GESTURECONFIG . Si noti che l'impostazione di dwID su 0 indica che sono impostati flag di configurazione dei movimenti globali.
Nome | Valore | Descrizione |
---|---|---|
GID_ZOOM | 3 | Impostazioni di configurazione per il movimento di zoom. |
GID_PAN | 4 | Movimento di panoramica. |
GID_ROTATE | 5 | Movimento di rotazione. |
GID_TWOFINGERTAP | 6 | Movimento di tocco a due dita. |
GID_PRESSANDTAP | 7 | Movimento di pressione e tocco. |
I flag seguenti vengono usati quando dwID è impostato su zero.
Nome | Valore | Descrizione |
---|---|---|
GC_ALLGESTURES | 0x00000001 | Tutti i movimenti. |
I flag seguenti vengono usati quando dwID è impostato su GID_ZOOM.
Nome | Valore | Descrizione |
---|---|---|
GC_ZOOM | 0x00000001 | Movimento di zoom. |
I flag seguenti vengono usati quando dwID è impostato su GID_PAN.
Nome | Valore | Descrizione |
---|---|---|
GC_PAN | 0x00000001 | Tutti i movimenti di panoramica. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | 0x00000002 | Panoramica verticale con un dito. |
GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY | 0x00000004 | Pani orizzontali con un dito. |
GC_PAN_WITH_GUTTER | 0x00000008 | Panoramica con un limite di gutter intorno ai bordi dell'area in cui è possibile eseguire la panoramica. Il limite della barra limita il movimento perpendicolare a una direzione primaria fino a quando non viene raggiunta una soglia per uscire dalla barra. |
GC_PAN_WITH_INTERTIA | 0x00000010 | Panoramica con inerzia per rallentare lentamente quando i movimenti di panoramica si arresta. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY
e rimuovere la panoramica verticale a dito singolo dal bit dwBlock consentirà la panoramica sia verticale che orizzontale.
Nome | Valore | Descrizione |
---|---|---|
GC_ROTATE | 0x00000001 | Movimento di rotazione. |
I flag seguenti vengono usati quando dwID è impostato su GID_TWOFINGERTAP.
Nome | Valore | Descrizione |
---|---|---|
GC_TWOFINGERTAP | 0x00000001 | Movimento di tocco a due dita. |
I flag seguenti vengono usati quando dwID è impostato su GID_PRESSANDTAP.
Nome | Valore | Descrizione |
---|---|---|
GC_PRESSANDTAP | 0x00000001 | Movimento di pressione e tocco. |
Esempio
Nell'esempio seguente viene illustrato come ricevere la panoramica orizzontale e verticale con un dito singolo senza gutter e senza inerzia. Si tratta di una configurazione tipica per un'applicazione di navigazione 2D, ad esempio l'applicazione Microsoft PixelSense Globe.
// 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();
}
Nell'esempio seguente viene illustrato come ricevere movimenti di panoramica con un dito e disabilitare la panoramica della barra. Si tratta di una configurazione tipica per le applicazioni che scorrono testo, ad esempio blocco note.
// 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();
}
Nell'esempio seguente viene illustrato come disabilitare tutti i movimenti.
// 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();
}
Nell'esempio seguente viene illustrato come abilitare tutti i movimenti.
GESTURECONFIG gc = {0,GC_ALLGESTURES,0};
UINT uiGcs = 1;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, &gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
L'esempio seguente mostra come abilitare tutti i movimenti di Windows 7.
// 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();
}
La configurazione di esempio seguente imposta la finestra padre per abilitare il supporto per lo zoom, la panoramica orizzontale e la panoramica verticale mentre la finestra figlio supporta solo la panoramica orizzontale.
// 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();
}
Requisiti
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |