Tradurre i messaggi di carattere

Qualsiasi thread che riceve carattere input da parte dell'utente deve includere la funzione TranslateMessage nel suo ciclo di messaggi. Questa funzione si esamina il codice tasto virtuale di un messaggio di battitura e, se il codice corrisponde a un carattere, inserisce un messaggio di carattere nella coda di messaggi. Il messaggio di carattere viene rimosso e spedito alla prossima iterazione del ciclo di messaggi; il parametro wParam del messaggio contiene il codice di carattere.

In generale, il ciclo di messaggi di un thread deve utilizzare la funzione TranslateMessage per tradurre ogni messaggio, non solo tasto virtuale di messaggi. Anche se TranslateMessage non ha alcun effetto su altri tipi di messaggi, garantisce che l'input da tastiera tradotto correttamente. Nell'esempio seguente viene illustrato come includere la funzione TranslateMessage in un ciclo di messaggi del thread tipico.

mentre (GetMessage (amp; msg, (HWND) NULL, 0, 0)) {se (TranslateAccelerator (hwndMain, haccl e msg) = = 0) {TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 
 

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

Index