WM _ TABLET _ QUERYSYSTEMGESTURESTATUS-Meldung

Wird gesendet, wenn das System ein Fenster fragt, welche Systemgesten es empfangen möchte.

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

Parameter

wParam

Wird nicht verwendet.

lParam

Ein Punktwert, der die Bildschirmkoordinaten darstellt.

Bemerkungen

Durch die Behandlung dieser Meldung können Sie Flimmer für Bereiche eines Fensters dynamisch deaktivieren.

Hinweis

Das lParam kann mithilfe der Makros und in x-Koordinaten und y-Koordinaten konvertiert GET_X_LPARAM GET_Y_LPARAM werden.

Standardmäßig empfängt Ihr Fenster alle Gestenereignisse des Systems. Sie können auswählen, welche Ereignisse das Fenster empfangen soll und welche Ereignisse deaktiviert werden sollen, indem Sie auf die WM _ TABLET _ QUERYSYSTEMGESTURESTATUS-Nachricht in Ihrer WndProc-Datei reagieren. Die WM _ TABLET _ QUERYSYSTEMGESTURESTATUS-Nachricht ist in tpcshrd.h definiert. Die Werte zum Aktivieren und Deaktivieren von System-Tablet-Systemgesten sind in tpcshrd.h ebenfalls wie folgt definiert:

#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

Hinweis

Das Deaktivieren von Drücken und Halten verbessert die Reaktionsfähigkeit für Mausklicks, da diese Funktion eine Wartezeit zur Unterscheidung zwischen den beiden Vorgängen erzeugt.

Seien Sie vorsichtig, wenn Sie die WM _ TABLET _ QUERYSYSTEMGESTURESTATUS-Meldung behandeln. WM _ TABLET _ QUERYSYSTEMGESTURESTATUS wird mithilfe der SendMessageTimeout-Funktion übergeben. Wenn Sie Methoden für eine COM-Schnittstelle aufrufen, muss sich dieses Objekt innerhalb desselben Prozesses befindet. Wenn dies nicht der Fall ist, löst COM eine Ausnahme aus.

Beispiele

Das folgende Beispiel zeigt, wie Sie Mithilfe von WM _ TABLET QUERYSYSTEMGESTURESTATUS Flimmer für eine Region _ deaktivieren.

#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;
}        
        

Im folgenden Beispiel wird gezeigt, wie sie verschiedene Funktionen für Einblendungen für ein gesamtes Fenster deaktivieren.

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);
}        
        

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows [Nur Vista-Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2008-Desktop-Apps]
Header
Tpcshrd.h