Función MapVirtualKeyA (winuser.h)

Traduce (asigna) un código de tecla virtual a un código de tecla o un valor de carácter, o bien traduce un código de tecla a un código de tecla virtual.

Sintaxis

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

Parámetros

[in] uCode

Tipo: UINT

El código de clave virtual o el código de examen de una clave. El modo en que se interpreta este valor depende del valor del parámetro uMapType .

[in] uMapType

Tipo: UINT

Traducción que se va a realizar. El valor de este parámetro depende del valor del parámetro uCode .

Valor Significado
MAPVK_VK_TO_VSC
0
El parámetro uCode es un código de clave virtual y se traduce en un código de examen. Si es un código de clave virtual que no distingue entre las teclas izquierda y derecha, se devuelve el código de examen izquierdo. Si no hay ninguna traducción, la función devuelve 0.
MAPVK_VSC_TO_VK
1
El parámetro uCode es un código de examen y se traduce en un código de clave virtual que no distingue entre las claves izquierda y derecha. Si no hay ninguna traducción, la función devuelve 0.
Windows Vista y versiones posteriores: el byte alto del valor uCode puede contener 0xe0 o 0xe1 para especificar el código de examen extendido.
MAPVK_VK_TO_CHAR
2
El parámetro uCode es un código de clave virtual y se traduce en un valor de carácter sin cambios en la palabra de orden bajo del valor devuelto. Las claves inactivas (diacríticos) se indican estableciendo el bit superior del valor devuelto. Si no hay ninguna traducción, la función devuelve 0. Vea la sección Comentarios.
MAPVK_VSC_TO_VK_EX
3
El parámetro uCode es un código de examen y se traduce en un código de clave virtual que distingue entre las teclas izquierda y derecha. Si no hay ninguna traducción, la función devuelve 0.
Windows Vista y versiones posteriores: el byte alto del valor uCode puede contener 0xe0 o 0xe1 para especificar el código de examen extendido.
MAPVK_VK_TO_VSC_EX
4
Windows Vista y versiones posteriores: El parámetro uCode es un código de clave virtual y se traduce en un código de examen. Si es un código de clave virtual que no distingue entre las teclas izquierda y derecha, se devuelve el código de examen izquierdo. Si el código de examen es un código de examen extendido, el byte alto del valor devuelto contendrá 0xe0 o 0xe1 para especificar el código de examen extendido. Si no hay ninguna traducción, la función devuelve 0.

Valor devuelto

Tipo: UINT

El valor devuelto es un código de examen, un código de clave virtual o un valor de carácter, según el valor de uCode y uMapType. Si no hay ninguna traducción, el valor devuelto es cero.

Comentarios

Para especificar un identificador para la distribución del teclado que se va a usar para traducir el código especificado, use la función MapVirtualKeyEx.

Una aplicación puede usar MapVirtualKey para traducir códigos de examen a las constantes de código de clave virtual VK_SHIFT, VK_CONTROL y VK_MENU, y viceversa. Estas traducciones no distinguen entre las instancias izquierda y derecha de las teclas MAYÚS, CTRL o ALT.

Una aplicación puede obtener el código de examen correspondiente a la instancia izquierda o derecha de una de estas claves llamando a MapVirtualKey con uCode establecido en una de las siguientes constantes de código de clave virtual:

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

Estas constantes de izquierda y derecha solo están disponibles para una aplicación a través de las funciones GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKey y MapVirtualKeyEx . Para obtener una tabla completa de códigos de clave virtual, consulte Códigos de clave virtual.

En MAPVK_VK_TO_CHARcódigos de clave virtual en modo , "A". Las claves Z' se traducen en mayúsculas "A". Caracteres Z, independientemente del diseño de teclado actual. Si desea traducir un código de clave virtual al carácter correspondiente, use la función ToAscii .

Nota

El encabezado winuser.h define MapVirtualKey como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también