WM_TABLET_QUERYSYSTEMGESTURESTATUS Nachricht
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
Wenn Sie diese Nachricht behandeln, können Sie Flicks für Bereiche eines Fensters dynamisch deaktivieren.
Hinweis
Das lParam kann mithilfe der GET_X_LPARAM
Makros und in x-Koordinaten und GET_Y_LPARAM
y-Koordinaten konvertiert werden.
Standardmäßig empfängt Ihr Fenster alle Systemgestenereignisse. Sie können auswählen, welche Ereignisse Ihr Fenster empfangen soll und welche Ereignisse deaktiviert werden sollen, indem Sie auf die WM_TABLET_QUERYSYSTEMGESTURESTATUS Nachricht in Ihrem WndProc antworten. Die WM_TABLET_QUERYSYSTEMGESTURESTATUS Nachricht ist in tpcshrd.h definiert. Die Werte zum Aktivieren und Deaktivieren von Systemtablett-Systemgesten sind auch in tpcshrd.h 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 des Drückens und Haltens verbessert die Reaktionsfähigkeit für Mausklicks, da diese Funktion eine Wartezeit zur Unterscheidung zwischen den beiden Vorgängen erzeugt.
Gehen Sie beim Behandeln der WM_TABLET_QUERYSYSTEMGESTURESTATUS Nachricht vorsichtig vor. WM_TABLET_QUERYSYSTEMGESTURESTATUS mithilfe der SendMessageTimeout-Funktion übergeben wird. Wenn Sie Methoden für eine COM-Schnittstelle aufrufen, muss sich dieses Objekt innerhalb desselben Prozesses befinden. Andernfalls löst COM eine Ausnahme aus.
Beispiele
Das folgende Beispiel zeigt, wie Sie Flicks für eine Region mithilfe von WM_TABLET_QUERYSYSTEMGESTURESTATUS 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;
}
Das folgende Beispiel zeigt, wie Sie verschiedene Flicks-Features 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);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
Header |
|