winuser.h


MapVirtualKey

La función MapVirtualKey traduce (mapea) un código de tecla virtual a un código de escaneo o un valor de carácter, o traduce un código de escaneo a un código de tecla virtual.

Sintaxis

UINT MapVirtualKey(
    UINT uCode,    // código de tecla virtual o código de escaneo
    UINT uMapType  // traducción a realizar
   );

Parámetros

uCode: especifica el código de tecla virtual o código de escaneo para una tecla. El modo en que este valor se interpreta depende del valor del parámetro uMapType.

uMapType: especifica la traducción a realizar. Del valor de este parámetro depende el valor del parámetro uCode:

Valor Significado
0 uCode es un código de tecla virtual y se traduce a un código de escaneo. Si es un código de tecla virtual que no distingue entre las teclas izquierda y derecha, se devuelve el código de la tecla izquieda. Si no existe traducción, la función devuelve 0.
1 uCode es un código de escaneo y se traduce a un código de tecla virtual que no distingue entre teclas izquierda y derecha. Si no existe traducción, la función devuelve 0.
2 uCode es un código de tecla virtual y se traduce a un valor de carácter sin desplazamiento (como si no se pulsara la tecla Mayúsculas) en la palabra de menor peso del valor de retorno. Las teclas muertas (tildes) se indican activando el bit de mayor peso del valor de retorno. Si no existe traducción, la función devuelve 0.
3 uCode es un código de escaneo y se traduce a un código de tecla virtual que distingue entre las teclas izquierda y derecha. Si no existe traducción, la función devuelve 0.

Valor de retorno

El valor de retorno puede ser un código de escaneo, un código de tecla virtual o un valor de carácter, dependiendo del valor de uCode y uMapType. Si no existe traducción, la función devuelve 0.

Observaciones

Una aplicación puede usar MapVirtualKey para traducir códigos de escaneo a las constantes de código de tecla virtual VK_SHIFT, VK_CONTROL y VK_MENU, y viceversa. Estas traducciones no distinguen entre las teclas derecha e izquierda de las teclas Mayúsculas, Control o Alt. Una aplicación puede obtener el código de escaneo correspondiente a la tecla izquierda o derecha de una de estas teclas llamando a MapVirtualKey con uno de las siguientes constantes de código de tecla virtual para uCode:

VK_LSHIFT	VK_RSHIFT
VK_LCONTROL	VK_RCONTROL
VK_LMENU	VK_RMENU

Estas constantes de distinción entre izquierda y derecha están disponibles para una aplicación sólo a través de las funciones GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState y MapVirtualKey.