Partager via


Fonction SetGestureConfig (winuser.h)

Configure les messages envoyés à partir d’une fenêtre pour les mouvements Windows Touch.

Syntaxe

BOOL SetGestureConfig(
  [in] HWND           hwnd,
  [in] DWORD          dwReserved,
  [in] UINT           cIDs,
  [in] PGESTURECONFIG pGestureConfig,
  [in] UINT           cbSize
);

Paramètres

[in] hwnd

Handle de la fenêtre sur laquelle définir la configuration de mouvement.

[in] dwReserved

Cette valeur est réservée et doit être définie sur 0.

[in] cIDs

Nombre des structures de configuration de mouvement qui sont passées.

[in] pGestureConfig

Tableau de structures de configuration de mouvement qui spécifient la configuration des mouvements.

[in] cbSize

Taille de la structure de configuration des mouvements (GESTURECONFIG).

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, utilisez la fonction GetLastError .

Remarques

Si vous ne prévoyez pas de modifier la configuration des mouvements, appelez SetGestureConfig au moment de la création de la fenêtre. Si vous souhaitez modifier dynamiquement la configuration des mouvements, appelez SetGestureConfig en réponse à WM_GESTURENOTIFY messages.

Le tableau suivant montre les identificateurs des mouvements pris en charge par le membre dwID de la structure GESTURECONFIG . Notez que la définition de dwID sur 0 indique que les indicateurs de configuration des mouvements globaux sont définis.

Nom Valeur Description
GID_ZOOM 3 Paramètres de configuration pour le mouvement de zoom.
GID_PAN 4 Mouvement panoramique.
GID_ROTATE 5 Mouvement de rotation.
GID_TWOFINGERTAP 6 Mouvement d’appui à deux doigts.
GID_PRESSANDTAP 7 Mouvement d’appui et d’appui.
 

Les indicateurs suivants sont utilisés lorsque dwID est défini sur zéro.

Nom Valeur Description
GC_ALLGESTURES 0x00000001 Tous les gestes.
 

Les indicateurs suivants sont utilisés lorsque dwID est défini sur GID_ZOOM.

Nom Valeur Description
GC_ZOOM 0x00000001 Mouvement de zoom.
 

Les indicateurs suivants sont utilisés lorsque dwID est défini sur GID_PAN.

Nom Valeur Description
GC_PAN 0x00000001 Tous les mouvements panoramiques.
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY 0x00000002 Panoramiques verticaux avec un doigt.
GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY 0x00000004 Panoramiques horizontaux avec un doigt.
GC_PAN_WITH_GUTTER 0x00000008 Panoramique avec une limite de gouttière autour des bords de la région panoramique. La limite de la gouttière limite le mouvement perpendiculaire à une direction primaire jusqu’à ce qu’un seuil soit atteint pour sortir de la gouttière.
GC_PAN_WITH_INTERTIA 0x00000010 Panoramique avec inertie pour ralentir en douceur lorsque les mouvements de panoramique s’arrêtent.
 
Note Les mouvements panoramiques peuvent être utilisés conjointement les uns avec les autres pour contrôler le comportement. Par exemple, le fait de définir les bits dwWant sur un panoramique avec un seul doigt horizontal et de définir les bits dwBlock sur un seul doigt vertical limitera le panoramique aux panoramiques horizontaux. La modification du bit dwWant par avoir GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY et la suppression du panoramique vertical à doigt unique du bit dwBlock permet un panoramique vertical et horizontal.
 
Note Par défaut, le panoramique a l’inertie activée.
 
Note Un seul appel à SetGestureConfig ne peut pas inclure d’autres GID avec 0.
 
Les indicateurs suivants sont utilisés lorsque dwID est défini sur GID_ROTATE.
Nom Valeur Description
GC_ROTATE 0x00000001 Mouvement de rotation.
 

Les indicateurs suivants sont utilisés lorsque dwID est défini sur GID_TWOFINGERTAP.

Nom Valeur Description
GC_TWOFINGERTAP 0x00000001 Mouvement d’appui à deux doigts.
 

Les indicateurs suivants sont utilisés lorsque dwID est défini sur GID_PRESSANDTAP.

Nom Valeur Description
GC_PRESSANDTAP 0x00000001 Mouvement d’appui et d’appui.
 
Note L’appel de SetGestureConfig modifie la configuration des mouvements pour la durée de vie de la fenêtre, pas seulement pour le mouvement suivant.
 

Exemples

L’exemple suivant montre comment vous pouvez recevoir un panoramique horizontal et vertical à un seul doigt sans gouttière et sans inertie. Il s’agit d’une configuration classique pour une application de navigation 2D telle que l’application 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();                                       
}

L’exemple suivant montre comment recevoir des mouvements de panoramique à un doigt et désactiver le panoramique de la gouttière. Il s’agit d’une configuration classique pour les applications qui défilent du texte, comme le Bloc-notes.

Note Vous devez définir explicitement tous les indicateurs que vous souhaitez activer ou désactiver lors du contrôle du panoramique d’un doigt.
 
// 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();                                       
}   

L’exemple suivant montre comment désactiver tous les mouvements.

// 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();                                       
}

L’exemple suivant montre comment activer tous les mouvements.

GESTURECONFIG gc = {0,GC_ALLGESTURES,0};

UINT uiGcs = 1;

BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, &gc, sizeof(GESTURECONFIG));  

if (!bResult){                
    DWORD err = GetLastError();                                       
}              

L’exemple suivant montre comment activer tous les mouvements 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();                                       
}

L’exemple de configuration suivant définit la fenêtre parente pour activer la prise en charge du zoom, du panoramique horizontal et du panoramique vertical, tandis que la fenêtre enfant prend simplement en charge le panoramique horizontal.

// 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();                                       
}

Spécifications

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll

Voir aussi

Fonctions

GESTURECONFIG

GetGestureConfig

Guide de programmation pour les mouvements

WM_GESTURENOTIFY