Contrassegni dei messaggi di battitura

Il parametro lParam di un messaggio di battitura contiene informazioni aggiuntive sulla pressione del tasto che ha generato il messaggio. Queste informazioni includono il conteggio di ripetizione, il codice di scansione, la bandiera esteso-chiave, il codice del contesto, la bandiera dello stato chiave precedente e il flag di stato di transizione. L'illustrazione seguente mostra le posizioni di queste bandiere e i valori del parametro lParam.

Un'applicazione può utilizzare i seguenti valori per manipolare le bandiere di battitura.

Valore Significato
KF_ALTDOWN Manipola il flag alt chiave, che ha indicato se viene premuto il tasto alt.
KF_DLGMODE Manipola il flag di modalità di dialogo, che indica se una finestra di dialogo è attiva.
KF_EXTENDED Manipola la bandiera chiave estesa.
KF_MENUMODE Manipola il flag di modalità di menù, che indica se un menu è attivo.
KF_REPEAT Manipola il conteggio di ripetizione.
KF_UP Manipola la bandiera dello stato di transizione.

Ripetere il conte

Si può verificare il conteggio di ripetizione per determinare se un messaggio di battitura rappresenta più di una sequenza di tasti. Il sistema incrementa il conteggio quando la tastiera genera messaggi WM_KEYDOWN o WM_SYSKEYDOWN più velocemente di quanto un'applicazione può elaborarli. Ciò accade spesso quando l'utente tiene premuto una chiave lunga abbastanza per iniziare la caratteristica di ripetizione automatica della tastiera. Invece di riempire la coda di messaggi di sistema con i messaggi chiave giù risultanti, il sistema combina i messaggi in una singola chiave giù il messaggio e incrementa il conteggio di ripetizione. Rilasciando una chiave non può iniziare la caratteristica di ripetizione automatica, quindi il conteggio di ripetizione per messaggi WM_KEYUP e WM_SYSKEYUP è sempre impostato su 1.

Analisi codice

Il codice di scansione è il valore che l'hardware di tastiera genera quando l'utente preme un tasto. Esso è un valore di dipendenti dal dispositivo che identifica il tasto premuto, in contrasto con il carattere rappresentato dalla chiave. Un'applicazione in genere ignora la scansione di codici. Vengono invece utilizzati i codici di tasti virtuali indipendenti dal dispositivo di interpretare i messaggi di battitura.

Bandiera esteso-Key

Il flag di esteso-chiave indica se il messaggio di battitura originati da uno dei tasti supplementari sulla tastiera avanzata. I tasti estesi sono costituiti i tasti alt e ctrl sul lato destro della tastiera; l'ins, CANC, casa, fine, PGSU, PGGIÙ e tasti freccia in grappoli a sinistra del tastierino numerico; il tasto Bloc num; il tasto pausa (ctrl + pausa); il tasto Stamp stampa; e la divisione (/) e inserire le chiavi nel tastierino numerico. È impostato il flag esteso-chiave se la chiave è una chiave estesa.

Contesto codice

Il codice di contesto indica se il tasto alt è stato giù quando è stato generato il messaggio di battitura. Il codice è 1 se il tasto alt è sceso e 0 se fosse fino.

Bandiera chiave dello stato precedente

La bandiera dello stato chiave precedente indica se il tasto che ha generato il messaggio di battitura è stato in precedenza su o giù. È 1 se la chiave è stato precedentemente giù e 0 se la chiave è stata in precedenza fino. È possibile utilizzare questo flag per identificare i messaggi di battitura generati dalla funzione di ripetizione automatico della tastiera. Questo flag è impostato su 1 per WM_KEYDOWN e WM_SYSKEYDOWN battitura messaggi generati dalla funzionalità di ripetizione automatica. Esso è sempre impostato su 0 per messaggi WM_KEYUP e WM_SYSKEYUP.

Bandiera di stato di transizione

Il flag di stato di transizione indica se la pressione di un tasto o rilasciando una chiave generato il messaggio di battitura. Questo flag è sempre impostato su 0 per messaggi WM_KEYDOWN e WM_SYSKEYDOWN ; esso è sempre impostato su 1 per i messaggi WM_KEYUP e WM_SYSKEYUP.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index