messaggio WM_SYSKEYUP

Inviato alla finestra con lo stato attivo della tastiera quando l'utente rilascia un tasto premuto mentre il tasto ALT è stato premuto. Si verifica anche quando nessuna finestra ha attualmente lo stato attivo della tastiera; in questo caso, il messaggio WM_SYSKEYUP viene inviato alla finestra attiva. La finestra che riceve il messaggio può distinguere tra questi due contesti controllando il codice di contesto nel parametro lParam .

Una finestra riceve questo messaggio tramite la relativa funzione WindowProc .

#define WM_SYSKEYUP                     0x0105

Parametri

wParam

Codice della chiave virtuale della chiave da rilasciare. Vedere Codici di chiave virtuale.

lParam

Numero di ripetizioni, codice di analisi, flag di chiave estesa, codice di contesto, flag di stato chiave precedente e flag di stato di transizione, come illustrato nella tabella seguente.

BITS Significato
0-15 Numero di ripetizioni per il messaggio corrente. Il valore è il numero di volte in cui la sequenza di tasti viene creata automaticamente in seguito all'utente che tiene premuto il tasto. Il numero di ripetizioni è sempre uno per un messaggio WM_SYSKEYUP .
16-23 Codice di analisi. Il valore dipende dall'OEM.
24 Indica se il tasto è un tasto esteso, ad esempio i tasti ALT e CTRL di destra visualizzati su una tastiera avanzata da 101 o 102 tasti. Il valore è 1 se si tratta di una chiave estesa; in caso contrario, è zero.
25-28 Riservati; non usare.
29 Codice di contesto. Il valore è 1 se il tasto ALT è inattivo mentre viene rilasciato il tasto; è zero se il messaggio WM_SYSKEYUP viene inviato alla finestra attiva perché nessuna finestra ha lo stato attivo della tastiera.
30 Stato della chiave precedente. Il valore è sempre 1 per un messaggio WM_SYSKEYUP .
31 Stato di transizione. Il valore è sempre 1 per un messaggio WM_SYSKEYUP .

Per altri dettagli, vedere Flag di messaggio di sequenza di tasti.

Valore restituito

Un'applicazione deve restituire zero se elabora questo messaggio.

Commenti

La funzione DefWindowProc invia un messaggio di WM_SYSCOMMAND alla finestra di primo livello se il tasto F10 o il tasto ALT è stato rilasciato. Il parametro wParam del messaggio è impostato su SC_KEYMENU.

Quando il codice di contesto è zero, il messaggio può essere passato alla funzione TranslateAccelerator , che la gestirà come se fosse un normale messaggio di chiave anziché un messaggio con chiave di carattere. In questo modo è possibile usare i tasti di scelta rapida con la finestra attiva anche se la finestra attiva non ha lo stato attivo della tastiera.

Per le tastiere avanzate da 101 e 102 tasti, i tasti estesi sono i tasti ALT e CTRL destro nella sezione principale della tastiera; i tasti INS, DEL, HOME, END, PAGE UP, PAGE DOWN e arrow nei cluster a sinistra del tastierino numerico; e i tasti di divisione (/) e INVIO nel tastierino numerico. Altre tastiere possono supportare il bit del tasto esteso nel parametro lParam .

Per gli Stati Uniti tastiere con 102 tasti avanzati, il tasto ALT destro viene gestito come tasto CTRL+ALT. Nella tabella seguente viene illustrata la sequenza di messaggi risultanti quando l'utente preme e rilascia questo tasto.

Message Codice della chiave virtuale
WM_KEYDOWN VK_CONTROL
WM_KEYDOWN VK_MENU
WM_KEYUP VK_CONTROL
WM_SYSKEYUP VK_MENU

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Winuser.h (include Windows.h)

Vedi anche