WM_TABLET_QUERYSYSTEMGESTURESTATUS message
Envoyé lorsque le système demande à une fenêtre quels mouvements système il souhaite recevoir.
#define WM_TABLET_DEFBASE 0x02C0
#define WM_TABLET_QUERYSYSTEMGESTURESTATUS (WM_TABLET_DEFBASE + 12)
Paramètres
-
wParam
-
Non utilisé.
-
lParam
-
Valeur de point qui représente les coordonnées de l’écran.
Notes
En gérant ce message, vous pouvez désactiver dynamiquement les mouvements pour les régions d’une fenêtre.
Notes
Le lParam peut être converti en coordonnées x et en coordonnées y à l’aide des GET_X_LPARAM
macros et .GET_Y_LPARAM
Par défaut, votre fenêtre reçoit tous les événements de mouvement système. Vous pouvez choisir les événements que vous souhaitez que votre fenêtre reçoive et ceux que vous souhaitez désactiver en répondant au message WM_TABLET_QUERYSYSTEMGESTURESTATUS dans votre WndProc. Le message WM_TABLET_QUERYSYSTEMGESTURESTATUS est défini dans tpcshrd.h. Les valeurs permettant d’activer et de désactiver les mouvements système de tablette système sont également définies dans tpcshrd.h comme suit :
#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
Notes
La désactivation d’une pression prolongée améliore la réactivité des clics de souris, car cette fonctionnalité crée un temps d’attente pour faire la distinction entre les deux opérations.
Soyez prudent lors de la gestion du message WM_TABLET_QUERYSYSTEMGESTURESTATUS . WM_TABLET_QUERYSYSTEMGESTURESTATUS est transmis à l’aide de la fonction SendMessageTimeout . Si vous appelez des méthodes sur une interface COM, cet objet doit se trouver dans le même processus. Si ce n’est pas le cas, COM lève une exception.
Exemples
L’exemple suivant montre comment désactiver les volets pour une région à l’aide de 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;
}
L’exemple suivant montre comment désactiver diverses fonctionnalités de volets pour une fenêtre entière.
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);
}
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2008 [applications de bureau uniquement] |
En-tête |
|