mensaje de WM_TABLET_QUERYSYSTEMGESTURESTATUS
Se envía cuando el sistema pregunta a una ventana qué gestos del sistema desea 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.
Comentarios
Al controlar este mensaje, puede deshabilitar dinámicamente los parpadeos para las regiones de una ventana.
Nota
LParam se puede convertir en coordenadas x e coordenadas y mediante las GET_X_LPARAM
macros y GET_Y_LPARAM
.
De forma predeterminada, la ventana recibirá todos los eventos de gestos del sistema. Puede elegir qué eventos desea que reciba la ventana y qué eventos desea deshabilitar respondiendo al mensaje de 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 tableta del sistema también se definen en tpcshrd.h de la siguiente manera:
#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 pulsación y la suspensió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 de 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 parpadeos 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 parpadeo 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 Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado |
|