messaggio WM_TABLET_QUERYSYSTEMGESTURESTATUS
Inviato quando il sistema chiede a una finestra quali movimenti di sistema desidera ricevere.
#define WM_TABLET_DEFBASE 0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS (WM_TABLET_DEFBASE + 12)
Parametri
-
wParam
-
Non usato.
-
lParam
-
Valore di punto che rappresenta le coordinate dello schermo.
Commenti
Gestendo questo messaggio, è possibile disabilitare dinamicamente i flick per le aree di una finestra.
Nota
LParam può essere convertito in coordinate x e coordinate y usando le GET_X_LPARAM
macro e GET_Y_LPARAM
.
Per impostazione predefinita, la finestra riceverà tutti gli eventi di movimento di sistema. È possibile scegliere quali eventi si desidera ricevere la finestra e quali eventi si desidera disabilitare rispondendo al messaggio di WM_TABLET_QUERYSYSTEMGESTURESTATUS nel WndProc. Il messaggio WM_TABLET_QUERYSYSTEMGESTURESTATUS è definito in tpcshrd.h. I valori per abilitare e disabilitare i movimenti del sistema tablet di sistema sono definiti anche in tpcshrd.h come indicato di seguito:
#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 disabilitazione della pressione e il blocco migliorano la velocità di risposta per i clic del mouse perché questa funzionalità crea un tempo di attesa per distinguere tra le due operazioni.
Prestare attenzione quando si gestisce il messaggio di WM_TABLET_QUERYSYSTEMGESTURESTATUS . WM_TABLET_QUERYSYSTEMGESTURESTATUS viene passato usando la funzione SendMessageTimeout . Se si chiamano metodi in un'interfaccia COM, tale oggetto deve trovarsi nello stesso processo. In caso contrario, COM genera un'eccezione.
Esempio
Nell'esempio seguente viene illustrato come disabilitare i flick per un'area usando 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;
}
Nell'esempio seguente viene illustrato come disabilitare varie funzionalità di flick per un'intera finestra.
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);
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows Vista [solo app desktop] |
Server minimo supportato |
Windows Server 2008 [solo app desktop] |
Intestazione |
|