PDA

Visualizza la versione completa : [C++] Ottenere il valore del tasto digitato dall'utente


GliderKite
15-02-2011, 23:27
Quali sono le funzioni in windows e linux che permettono di ottenere il tipo di tasto premuto dall'utente indipendentemente dalla finestra utilizzata?

Grazie.

MItaly
15-02-2011, 23:55
Su Windows c'è GetAsyncKeyState, su Linux qualcosa di analogo è la XQueryKeymap.

GliderKite
16-02-2011, 00:14
La stavo appunto guardando: http://msdn.microsoft.com/en-us/library/ms646293(VS.85).aspx.

Tuttavia mi sfugge l'utilizzo, se scrivo ad esempio:


SHORT key = GetAsyncKeyState( 1 );


Se premo il tasto sinistro del mouse key dovrebbe assumere un valore maggiore di zero, ma ciò non accade, dove sbaglio?

Alex'87
16-02-2011, 00:21
Perché GetAsyncKeyState(1)?

simo_85
16-02-2011, 00:28
Se si tratta di descodificare il valore ascii puoi benissimo fare una conversione di formato in output, no?

MItaly
16-02-2011, 00:33
Originariamente inviato da GliderKite
La stavo appunto guardando: http://msdn.microsoft.com/en-us/library/ms646293(VS.85).aspx.

Tuttavia mi sfugge l'utilizzo, se scrivo ad esempio:


SHORT key = GetAsyncKeyState( 1 );


Se premo il tasto sinistro del mouse key dovrebbe assumere un valore maggiore di zero, ma ciò non accade, dove sbaglio?
Suppongo che accada perché nel momento in cui vai a controllare il tasto è già stato rilasciato, e qualcun altro che usa GetAsyncKeyState si è già preso il "recently pressed" bit. Leggi la sezione Remarks della documentazione della funzione.

Per inciso, dovresti usare le costanti (VK_LBUTTON, in questo caso) per maggiore chiarezza nel codice.

Loading