Quando si sviluppa per un tablet PC, come faccio a determinare se l'utente fa clic su un mouse o una penna?

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

  •  09-09-2019
  •  | 
  •  

Domanda

Come faccio a verificare se l'utente fa clic con il mouse o con uno stilo penna su un controllo di C #.

Per esempio. Se l'utente fa clic una casella di testo con un pulsante della penna allora voglio un pannello di input di pop-up, ma se si fa clic con il mouse allora non dovrebbe. Allora, come faccio a verificare se la stava usando un mouse o una penna?

Modifica: Utilizzo di Windows Form non WPF

È stato utile?

Soluzione

ho scritto un articolo per MSDN che non ha mai avuto pubblicato, credo perché lo sviluppo Tablet PC svanito per il momento ho avuto a loro. Ma lo ha descritto come fare questo. Per farla breve, si vorrà l'API GetMessageExtraInfo. Ecco le definizioni di:

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

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

E-mail me al mio primo nome a Einstein Tech dot net se vuoi che io manderò l'articolo.

Altri suggerimenti

Se stai usando WPF poi c'è tutta una serie di eventi Stylus. Per esempio. UIElement.StylusDown .

Questo ha maggiori dettagli su come stilo e mouse eventi interagiscono .

Se non si utilizza WPF, perché no? : P

Io non so davvero troppo di questo, ma direi che se qualcuno sta utilizzando uno stilo, poi il mouseEnter, mouseExit (o qualunque sia l'equivalente sia) gli eventi non sarà mai il fuoco. Se uno non essere licenziato, poi si sa che si sta utilizzando un mouse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top