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
Tpcshrd.h