2013-08-28 1 views
4

Pour voir l'événement de clic droit auquel je fais référence, see this video.Désactiver le clic droit via Maintenir la touche enfoncée sur Windows 7 Appareil à écran tactile

Je travaille sur une application qui ajoute un bouton de zoom dans une application Windows Forms. Lorsque l'utilisateur touche le bouton, l'application doit effectuer un zoom continu sur la fenêtre. Cela fonctionne en surveillant l'événement de souris vers le bas sur le bouton. Lorsque la souris est enfoncée, une minuterie continue de zoomer sur la vue. Cela fonctionne bien tant que le doigt de l'utilisateur glisse après le contact initial. Cependant, si l'utilisateur pousse sur un point tout le temps, il recevra un petit cercle d'attente puis un clic droit.

J'ai ajouté le code de this link à l'application:

public bool PreFilterMessage(ref Message m) 
{ 
    // Filter out WM_NCRBUTTONDOWN/UP/DBLCLK 
    if (m.Msg == 0xA4 || m.Msg == 0xA5 || m.Msg == 0xA6) return true; 
    // Filter out WM_RBUTTONDOWN/UP/DBLCLK 
    if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true; 
    return false; 
} 

Ce code désactive l'événement résultant clic droit. Cependant, le cercle se produit toujours et un événement mousedown ne se produit pas. Y a-t-il un moyen de faire en sorte que tout contact physique compte comme une souris et ne démarre pas le bon processus de clic?


Modifier I Tried va Control Panel->Pen and Touch et la désactivation de la presse et maintenez pour la fonction de clic droit. Ceci a désactivé l'icône de rotation, mais la souris ne se produit toujours pas à moins que l'utilisateur bouge légèrement son doigt. Je ne vois pas pourquoi un utilisateur doit gribouiller pour appuyer sur un bouton.

Répondre

0

Le cercle affiché au toucher est un geste introduit dans Windows 7 pour un clic droit. Il est appelé Press and Hold.

Si vous souhaitez désactiver complètement ce geste, vous devez le signaler au système d'exploitation en appelant la fonction SetGestureConfig lors de l'initialisation de votre formulaire. Cette fonction vous permet de spécifier explicitement quels gestes sont supportés par votre contrôle.

0

S'il vous plaît essayer cela, il fonctionne pour moi dans Windows 10. Ce n'est pas un changement global du système, appuyez sur & hold continuera à travailler dans le système d'exploitation et d'autres programmes. Il désactive la touche & tenir seulement pour votre fenêtre.

. . .

[DllImport("kernel32.dll", EntryPoint = "GlobalAddAtomA", CharSet=CharSet.Ansi)] 
static extern UInt16 GlobalAddAtom(string lpString); 

[DllImport("user32.dll", EntryPoint = "SetPropA", CharSet = CharSet.Ansi)] 
static extern UInt32 SetProp(IntPtr hWnd, UInt32 lpString, UInt32 hData); 

. . .

UInt16 atom = GlobalAddAtom("MicrosoftTabletPenServiceProperty"); 
if (atom != 0) 
    SetProp(this.Handle, (UInt32)atom, 1); 

. . .

Questions connexes