Fonction MapVirtualKeyA (winuser.h)

Convertit (mappe) un code de clé virtuelle en code d’analyse ou en valeur de caractère, ou traduit un code d’analyse en code de clé virtuelle.

Syntaxe

UINT MapVirtualKeyA(
  [in] UINT uCode,
  [in] UINT uMapType
);

Paramètres

[in] uCode

Type : UINT

Code de clé virtuelle ou code d’analyse d’une clé. L’interprétation de cette valeur dépend de la valeur du paramètre uMapType .

[in] uMapType

Type : UINT

Traduction à effectuer. La valeur de ce paramètre dépend de la valeur du paramètre uCode .

Valeur Signification
MAPVK_VK_TO_VSC
0
Le paramètre uCode est un code de clé virtuelle qui est traduit en code d’analyse. S’il s’agit d’un code à clé virtuelle qui ne fait pas la distinction entre les touches de gauche et de droite, le code d’analyse de gauche est retourné. S’il n’y a pas de traduction, la fonction retourne 0.
MAPVK_VSC_TO_VK
1
Le paramètre uCode est un code d’analyse qui est traduit en code de clé virtuelle qui ne fait pas la distinction entre les touches de gauche et de droite. S’il n’y a pas de traduction, la fonction retourne 0.
Windows Vista et versions ultérieures : l’octet élevé de la valeur uCode peut contenir 0xe0 ou 0xe1 pour spécifier le code d’analyse étendu.
MAPVK_VK_TO_CHAR
2
Le paramètre uCode est un code de clé virtuelle qui est traduit en une valeur de caractère non rétrogradée dans le mot d’ordre bas de la valeur de retour. Les clés mortes (diacritiques) sont indiquées en définissant le bit supérieur de la valeur de retour. S’il n’y a pas de traduction, la fonction retourne 0. Consultez la section Notes.
MAPVK_VSC_TO_VK_EX
3
Le paramètre uCode est un code d’analyse qui est traduit en code de clé virtuelle qui fait la distinction entre les touches de gauche et de droite. S’il n’y a pas de traduction, la fonction retourne 0.
Windows Vista et versions ultérieures : l’octet élevé de la valeur uCode peut contenir 0xe0 ou 0xe1 pour spécifier le code d’analyse étendu.
MAPVK_VK_TO_VSC_EX
4
Windows Vista et versions ultérieures : Le paramètre uCode est un code de clé virtuelle qui est traduit en code d’analyse. S’il s’agit d’un code à clé virtuelle qui ne fait pas la distinction entre les touches de gauche et de droite, le code d’analyse de gauche est retourné. Si le code d’analyse est un code d’analyse étendu, l’octet élevé de la valeur retournée contient 0xe0 ou 0xe1 pour spécifier le code d’analyse étendu. S’il n’y a pas de traduction, la fonction retourne 0.

Valeur retournée

Type : UINT

La valeur de retour est un code d’analyse, un code de clé virtuelle ou une valeur de caractère, en fonction de la valeur uCode et uMapType. S’il n’y a pas de traduction, la valeur de retour est zéro.

Remarques

Afin de spécifier un handle pour la disposition du clavier à utiliser pour traduire le code spécifié, utilisez la fonction MapVirtualKeyEx.

Une application peut utiliser MapVirtualKey pour traduire les codes d’analyse en constantes de code de clé virtuelle VK_SHIFT, VK_CONTROL et VK_MENU, et vice versa. Ces traductions ne font pas la distinction entre les instances gauche et droite des touches Maj, Ctrl ou Alt.

Une application peut obtenir le code d’analyse correspondant à la instance gauche ou droite de l’une de ces clés en appelant MapVirtualKey avec uCode défini sur l’une des constantes de code de clé virtuelle suivantes :

  • VK_LSHIFT
  • VK_RSHIFT
  • VK_LCONTROL
  • VK_RCONTROL
  • VK_LMENU
  • VK_RMENU

Ces constantes de distinction gauche et droite sont disponibles pour une application uniquement par le biais des fonctions GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKeyKey et MapVirtualKeyEx . Pour obtenir la liste complète des codes de clé virtuelle, consultez Codes de clé virtuelle.

En mode MAPVK_VK_TO_CHARcodes de clé virtuelle, « A ». Les clés Z' sont traduites en majuscules 'A'.. Caractères Z' quelle que soit la disposition actuelle du clavier. Si vous souhaitez traduire un code de clé virtuelle en caractère correspondant, utilisez la fonction ToAscii .

Notes

L’en-tête winuser.h définit MapVirtualKey comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

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

Voir aussi