winuser.h


MapVirtualKeyEx

[Ahora soportado en Windows NT]

La función MapVirtualKeyEx 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. La función traduce los códigos usando el lenguaje de entrada y el diseño de teclado físico identificado por el manipulador de diseño de teclado dado.

Sintaxis

UINT MapVirtualKeyEx(
    UINT uCode,    // código de tecla virtual o código de escaneo
    UINT uMapType  // traducción a realizar
    HKL dwhkl      // manipulador de diseño de teclado
   );

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.

dwhkl: identifica el diseño de teclado que se usará para traducir el código indicado. Este parámetro puede ser cualquier manipulador de diseño de teclado devuelto previamente por la función LoadKeyboardLayout.

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 MapVirtualKeyEx 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 MapVirtualKeyEx 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, MapVirtualKey y MapVirtualKeyEx.