Mensaje _ WM TABLET _ QUERYSYSTEMGESTURESTATUS

Se envía cuando el sistema pregunta a una ventana qué gestos del sistema le gustaría recibir.

#define WM_TABLET_DEFBASE                    0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS   (WM_TABLET_DEFBASE + 12)       

Parámetros

wParam

No se usa.

lParam

Valor de punto que representa las coordenadas de la pantalla.

Observaciones

Al controlar este mensaje, puede deshabilitar dinámicamente los gestos para las regiones de una ventana.

Nota

LParam se puede convertir en coordenadas x e y mediante las GET_X_LPARAM macros y GET_Y_LPARAM .

De forma predeterminada, la ventana recibirá todos los eventos de gesto del sistema. Puede elegir qué eventos desea que reciba la ventana y qué eventos desea deshabilitar respondiendo al mensaje WM _ TABLET _ QUERYSYSTEMGESTURESTATUS en WndProc. El mensaje WM TABLET _ _ QUERYSYSTEMGESTURESTATUS se define en tpcshrd.h. Los valores para habilitar y deshabilitar los gestos del sistema de tabletas del sistema también se definen en tpcshrd.h como se muestra a continuación:

#define TABLET_DISABLE_PRESSANDHOLD        0x00000001
#define TABLET_DISABLE_PENTAPFEEDBACK      0x00000008
#define TABLET_DISABLE_PENBARRELFEEDBACK   0x00000010
#define TABLET_DISABLE_TOUCHUIFORCEON      0x00000100
#define TABLET_DISABLE_TOUCHUIFORCEOFF     0x00000200
#define TABLET_DISABLE_TOUCHSWITCH         0x00008000
#define TABLET_DISABLE_FLICKS              0x00010000
#define TABLET_ENABLE_FLICKSONCONTEXT      0x00020000
#define TABLET_ENABLE_FLICKLEARNINGMODE    0x00040000
#define TABLET_DISABLE_SMOOTHSCROLLING     0x00080000
#define TABLET_DISABLE_FLICKFALLBACKKEYS   0x00100000
#define TABLET_ENABLE_MULTITOUCHDATA       0x01000000

Nota

La deshabilitación de la presión y la retención mejorará la capacidad de respuesta de los clics del mouse, ya que esta funcionalidad crea un tiempo de espera para distinguir entre las dos operaciones.

Tenga cuidado al controlar el mensaje WM _ TABLET _ QUERYSYSTEMGESTURESTATUS. WM _ TABLET _ QUERYSYSTEMGESTURESTATUS se pasa mediante la función SendMessageTimeout. Si llama a métodos en una interfaz COM, ese objeto debe estar dentro del mismo proceso. Si no es así, COM produce una excepción.

Ejemplos

En el ejemplo siguiente se muestra cómo deshabilitar los gestos de una región mediante WM _ TABLET _ QUERYSYSTEMGESTURESTATUS.

#include <windowsx.h>        

(...)        
        
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
    case WM_TABLET_QUERYSYSTEMGESTURESTATUS:
        int x = GET_X_LPARAM(lParam);
        int y = GET_Y_LPARAM(lParam);
        if (x < xThreashold && y < yThreshold){
            // no flicks in the region specified by the threashold
            return TABLET_DISABLE_FLICKS;
        }
        // flicks will happen otherwise
        return 0;
}        
        

En el ejemplo siguiente se muestra cómo deshabilitar varias características de gestos para una ventana completa.

const DWORD dwHwndTabletProperty = 
    TABLET_DISABLE_PRESSANDHOLD | // disables press and hold (right-click) gesture
    TABLET_DISABLE_PENTAPFEEDBACK | // disables UI feedback on pen up (waves)
    TABLET_DISABLE_PENBARRELFEEDBACK | // disables UI feedback on pen button down (circle)
    TABLET_DISABLE_FLICKS; // disables pen flicks (back, forward, drag down, drag up)
        
void SetTabletpenserviceProperties(HWND hWnd){
    ATOM atom = ::GlobalAddAtom(MICROSOFT_TABLETPENSERVICE_PROPERTY);    
    ::SetProp(hWnd, MICROSOFT_TABLETPENSERVICE_PROPERTY, reinterpret_cast<HANDLE>(dwHwndTabletProperty));
    ::GlobalDeleteAtom(atom);
}        
        

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Solo [ aplicaciones de escritorio de Vista]
Servidor mínimo compatible
Windows Solo aplicaciones de escritorio de Server 2008 []
Encabezado
Tpcshrd.h