Wenn für einen Tablet-PC zu entwickeln, wie kann ich feststellen, ob der Benutzer eine Maus oder einen Stift angeklickt?

StackOverflow https://stackoverflow.com/questions/758782

  •  09-09-2019
  •  | 
  •  

Frage

Wie kann ich überprüfen, ob der Benutzer mit der Maus oder mit einem digitalen Stift auf einem C # Steuerelement geklickt.

Für zB. Wenn der Benutzer ein Textfeld mit einem Stift Schaltfläche klickt dann mag ich ein Eingabefeld, Pop-up, aber wenn er mit einer Maus klickt dann sollte es nicht. Also, wie kann ich überprüfen, ob er eine Maus oder einen Stift wurde mit?

Edit: Verwenden von Windows Forms nicht WPF

War es hilfreich?

Lösung

Ich schrieb einen Artikel für MSDN, das wurde nie veröffentlicht, weil ich denke, Tablet PC Entwicklung durch die Zeit im Sande verlaufen ich es ihnen. Aber es beschrieb, wie dies zu tun. Lange Rede kurzer Sinn, werden Sie die GetMessageExtraInfo API möchten. Hier sind die Definitionen:

// [DllImport( "user32.dll" )]
// private static extern uint GetMessageExtraInfo( );

uint extra = GetMessageExtraInfo();
bool isPen = ( ( extra &  0xFFFFFF00 ) == 0xFF515700 );

Bitte schicken Sie mir bei meinem Vornamen an Einstein Tech dot net, wenn Sie wollen, dass ich Ihnen den Artikel senden.

Andere Tipps

Wenn Sie WPF verwenden dann gibt es eine ganze Reihe von Stylus Ereignisse. Z.B. UIElement.StylusDown .

Diese hat mehr Informationen darüber, wie Stift und Maus-Ereignisse in Wechselwirkung treten .

Wenn Sie nicht WPF verwenden, warum nicht? : P

ich nicht wirklich wissen, zu viel darüber, aber ich würde vermuten, dass, wenn jemand mit einem Stift verwendet, dann das Mouseenter, mouseexit (oder was auch immer das entspricht) Ereignisse wird nicht immer Feuer. Wenn man nicht gefeuert werden, dann wissen Sie, dass sie eine Maus verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top