Partager via


MapVirtualKeyA, fonction (winuser.h)

Convertit (mappe) un code de clé virtuelle en code d’analyse ou 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

Le code de clé virtuelle ou analyser le code d’une clé. La façon dont cette valeur est interprétée 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 et est traduit en code d’analyse. S’il s’agit d’un code de clé virtuelle qui ne fait pas la distinction entre les clés de gauche et de droite, le code d’analyse de gauche est retourné. En l’absence de traduction, la fonction retourne 0.
MAPVK_VSC_TO_VK
1
Le paramètre uCode est un code d’analyse et est traduit en code de clé virtuelle qui ne fait pas la distinction entre les touches gauche et droite. En l’absence 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 et est traduit en une valeur de caractère non convertie dans le mot de bas ordre 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. En l’absence de traduction, la fonction retourne 0. Voir les remarques.
MAPVK_VSC_TO_VK_EX
3
Le paramètre uCode est un code d’analyse et est traduit en code de clé virtuelle qui fait la distinction entre les touches gauche et droite. En l’absence 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 et est traduit en code d’analyse. S’il s’agit d’un code de clé virtuelle qui ne fait pas la distinction entre les clés 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. En l’absence de traduction, la fonction retourne 0.

Valeur de retour

Type : uiNT

La valeur de retour est un code d’analyse, un code de clé virtuelle ou une valeur de caractère, selon la valeur de uCode et uMapType. S’il n’existe aucune traduction, la valeur de retour est égale à zéro.

Remarques

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

Une application peut utiliser MapVirtualKey pour traduire des codes d’analyse en constantes de code de clé virtuelle VK_SHIFT, VK_CONTROLet VK_MENU, et inversement. 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 à l’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 gauche et de droite sont disponibles pour une application uniquement via les GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKeyet Fonctions 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, le « A ». Les touches Z sont traduites en majuscules « A ». Caractères Z indépendamment de la disposition actuelle du clavier. Si vous souhaitez traduire un code de clé virtuelle en caractère correspondant, utilisez la fonction ToAscii.

Note

L’en-tête winuser.h définit MapVirtualKey comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winuser.h (include Windows.h)
bibliothèque User32.lib
DLL User32.dll

Voir aussi