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. |
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.
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. |
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.
// 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 |