Función SetGestureConfig (winuser.h)
Configura los mensajes que se envían desde una ventana para los gestos de Windows Touch.
Sintaxis
BOOL SetGestureConfig(
[in] HWND hwnd,
[in] DWORD dwReserved,
[in] UINT cIDs,
[in] PGESTURECONFIG pGestureConfig,
[in] UINT cbSize
);
Parámetros
[in] hwnd
Identificador de la ventana en el que se va a establecer la configuración de gestos.
[in] dwReserved
Este valor está reservado y debe establecerse en 0.
[in] cIDs
Recuento de las estructuras de configuración de gestos que se pasan.
[in] pGestureConfig
Matriz de estructuras de configuración de gestos que especifican la configuración de gestos.
[in] cbSize
Tamaño de la estructura de configuración de gestos (GESTURECONFIG).
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, use la función GetLastError .
Observaciones
Si no espera cambiar la configuración de gestos, llame a SetGestureConfig en el momento de la creación de la ventana. Si desea cambiar dinámicamente la configuración de gestos, llame a SetGestureConfig en respuesta a WM_GESTURENOTIFY mensajes.
En la tabla siguiente se muestran los identificadores de los gestos admitidos por el miembro dwID de la estructura GESTURECONFIG . Tenga en cuenta que establecer dwID en 0 indica que se establecen las marcas de configuración de gestos globales.
Nombre | Value | Descripción |
---|---|---|
GID_ZOOM | 3 | Opciones de configuración para el gesto de zoom. |
GID_PAN | 4 | Gesto de movimiento panorámico. |
GID_ROTATE | 5 | Gesto de rotación. |
GID_TWOFINGERTAP | 6 | Gesto de pulsación de dos dedos. |
GID_PRESSANDTAP | 7 | Gesto de presionar y pulsar. |
Las marcas siguientes se usan cuando dwID se establece en cero.
Nombre | Value | Descripción |
---|---|---|
GC_ALLGESTURES | 0x00000001 | Todos los gestos. |
Las marcas siguientes se usan cuando dwID se establece en GID_ZOOM.
Nombre | Value | Descripción |
---|---|---|
GC_ZOOM | 0x00000001 | Gesto de zoom. |
Las marcas siguientes se usan cuando dwID se establece en GID_PAN.
Nombre | Value | Descripción |
---|---|---|
GC_PAN | 0x00000001 | Todos los gestos de movimiento panorámico. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | 0x00000002 | Paneles verticales con un dedo. |
GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY | 0x00000004 | Paneles horizontales con un dedo. |
GC_PAN_WITH_GUTTER | 0x00000008 | Movimiento panorámico con un límite de margen alrededor de los bordes de la región desplazable. El límite del margen limita el movimiento perpendicular a una dirección primaria hasta que se alcanza un umbral para salir del canalón. |
GC_PAN_WITH_INTERTIA | 0x00000010 | Movimiento panorámico con inercia para ralentizar suavemente cuando se detengan los gestos de movimiento panorámico. |
GC_PAN_WITH_SINGLE_FINGER_VERTICALLY | GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY
y quite el movimiento panorámico vertical de un solo dedo del bit dwBlock , se habilitará el movimiento panorámico vertical y horizontal.
Nombre | Value | Descripción |
---|---|---|
GC_ROTATE | 0x00000001 | Gesto de rotación. |
Las marcas siguientes se usan cuando dwID se establece en GID_TWOFINGERTAP.
Nombre | Value | Descripción |
---|---|---|
GC_TWOFINGERTAP | 0x00000001 | Gesto de pulsación de dos dedos. |
Las marcas siguientes se usan cuando dwID se establece en GID_PRESSANDTAP.
Nombre | Value | Descripción |
---|---|---|
GC_PRESSANDTAP | 0x00000001 | Gesto de presionar y pulsar. |
Ejemplos
En el ejemplo siguiente se muestra cómo se puede recibir movimiento panorámico horizontal y vertical de un solo dedo sin medianil y sin inercia. Se trata de una configuración típica para una aplicación de navegación 2D, como la aplicación Globo de Píxeles de Microsoft.
// 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();
}
En el ejemplo siguiente se muestra cómo recibir gestos de movimiento panorámico de un solo dedo y deshabilitar el movimiento panorámico del canalón. Se trata de una configuración típica para las aplicaciones que desplazan texto como el Bloc de notas.
// 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();
}
En el ejemplo siguiente se muestra cómo se pueden deshabilitar todos los gestos.
// 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();
}
En el ejemplo siguiente se muestra cómo se pueden habilitar todos los gestos.
GESTURECONFIG gc = {0,GC_ALLGESTURES,0};
UINT uiGcs = 1;
BOOL bResult = SetGestureConfig(hWnd, 0, uiGcs, &gc, sizeof(GESTURECONFIG));
if (!bResult){
DWORD err = GetLastError();
}
En el ejemplo siguiente se muestra cómo habilitar todos los gestos de 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 siguiente configuración de ejemplo establecería la ventana primaria para habilitar la compatibilidad con el zoom, el movimiento panorámico horizontal y el movimiento panorámico vertical, mientras que la ventana secundaria solo admitiría el movimiento panorámico 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();
}
Requisitos
Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winuser.h (incluir Windows.h) |
Library | User32.lib |
Archivo DLL | User32.dll |