Condividi tramite


Funzione TranslateMessage (winuser.h)

Converte i messaggi di chiave virtuale in messaggi di carattere. I messaggi di carattere vengono inviati alla coda dei messaggi del thread chiamante, per essere letti alla successiva chiamata della funzione GetMessage o PeekMessage .

Sintassi

BOOL TranslateMessage(
  [in] const MSG *lpMsg
);

Parametri

[in] lpMsg

Tipo: const MSG*

Puntatore a una struttura MSG che contiene le informazioni sui messaggi recuperate dalla coda dei messaggi del thread chiamante tramite la funzione GetMessage o PeekMessage .

Valore restituito

Tipo: BOOL

Se il messaggio viene convertito , ovvero viene inviato un messaggio di carattere nella coda dei messaggi del thread, il valore restituito è diverso da zero.

Se il messaggio è WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN o WM_SYSKEYUP, il valore restituito è diverso da zero, indipendentemente dalla traduzione.

Se il messaggio non viene tradotto, ovvero un messaggio di carattere non viene inviato alla coda dei messaggi del thread, il valore restituito è zero.

Commenti

La funzione TranslateMessage non modifica il messaggio a cui punta il parametro lpMsg .

WM_KEYDOWN e combinazioni di WM_KEYUP producono un messaggio di WM_CHAR o di WM_DEADCHAR . WM_SYSKEYDOWN e combinazioni di WM_SYSKEYUP producono un messaggio di WM_SYSDEADCHAR o WM_SYSCHAR.

TranslateMessage produce WM_CHAR messaggi solo per i tasti mappati ai caratteri ASCII dal driver della tastiera.

Se le applicazioni elaborano messaggi con chiave virtuale per altri scopi, non devono chiamare TranslateMessage. Ad esempio, un'applicazione non deve chiamare TranslateMessage se la funzione TranslateAccelerator restituisce un valore diverso da zero. Si noti che l'applicazione è responsabile del recupero e dell'invio di messaggi di input alla finestra di dialogo. Per la maggior parte delle applicazioni viene usato il ciclo di messaggi principale. Tuttavia, per consentire all'utente di passare a e selezionare i controlli usando la tastiera, l'applicazione deve chiamare IsDialogMessage. Per altre informazioni, vedere Interfaccia della tastiera della finestra di dialogo.

Esempio

Per un esempio, vedere Creazione di un ciclo di messaggi.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-message-l1-1-0 (introdotto in Windows 8)

Vedi anche