Fonction TranslateMessage (winuser.h)

Convertit les messages à clé virtuelle en messages caractères. Les messages caractères sont publiés dans la file d’attente de messages du thread appelant, pour être lus la prochaine fois que le thread appelle la fonction GetMessage ou PeekMessage .

Syntaxe

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

Paramètres

[in] lpMsg

Type : const MSG*

Pointeur vers une structure MSG qui contient les informations de message récupérées à partir de la file d’attente de messages du thread appelant à l’aide de la fonction GetMessage ou PeekMessage .

Valeur retournée

Type : BOOL

Si le message est traduit (autrement dit, un message caractère est publié dans la file d’attente des messages du thread), la valeur de retour est différente de zéro.

Si le message est WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN ou WM_SYSKEYUP, la valeur de retour est différente de zéro, quelle que soit la traduction.

Si le message n’est pas traduit (autrement dit, un message de caractère n’est pas publié dans la file d’attente des messages du thread), la valeur de retour est zéro.

Remarques

La fonction TranslateMessage ne modifie pas le message pointé vers le paramètre lpMsg .

WM_KEYDOWN et les combinaisons WM_KEYUP produisent un message WM_CHAR ou WM_DEADCHAR . les combinaisons WM_SYSKEYDOWN et WM_SYSKEYUP produisent un message WM_SYSCHAR ou WM_SYSDEADCHAR .

TranslateMessage produit des messages WM_CHAR uniquement pour les touches mappées aux caractères ASCII par le pilote de clavier.

Si les applications traitent les messages de clé virtuelle à d’autres fins, elles ne doivent pas appeler TranslateMessage. Par instance, une application ne doit pas appeler TranslateMessage si la fonction TranslateAccelerator retourne une valeur différente de zéro. Notez que l’application est responsable de la récupération et de la distribution des messages d’entrée dans la boîte de dialogue. La plupart des applications utilisent la boucle de message main pour cela. Toutefois, pour permettre à l’utilisateur de se déplacer vers et de sélectionner des contrôles à l’aide du clavier, l’application doit appeler IsDialogMessage. Pour plus d’informations, consultez Interface du clavier de boîte de dialogue.

Exemples

Pour obtenir un exemple, consultez Création d’une boucle de message.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-message-l1-1-0 (introduit dans Windows 8)

Voir aussi