Función VkKeyScanExW (winuser.h)

Traduce un carácter al código de tecla virtual y el estado de cambio correspondientes. La función traduce el carácter usando el idioma de entrada y la distribución física del teclado identificados por el identificador de la configuración regional de entrada.

Sintaxis

SHORT VkKeyScanExW(
  [in] WCHAR ch,
  [in] HKL   dwhkl
);

Parámetros

[in] ch

Tipo: TCHAR

Carácter que se va a traducir en un código de clave virtual.

[in] dwhkl

Tipo: HKL

Identificador de configuración regional de entrada usado para traducir el carácter. Este parámetro puede ser cualquier identificador de configuración regional de entrada devuelto anteriormente por la función LoadKeyboardLayout .

Valor devuelto

Tipo: SHORT

Si la función se realiza correctamente, el byte de orden bajo del valor devuelto contiene el código de clave virtual y el byte de orden superior contiene el estado de desplazamiento, que puede ser una combinación de los siguientes bits de marca.

Valor devuelto Descripción
1
Se presiona cualquiera de las teclas MAYÚS.
2
Se presiona cualquiera de las teclas CTRL.
4
Se presiona cualquier tecla ALT.
8
Se presiona la tecla Hankaku.
16
Reservado (definido por el controlador de diseño de teclado).
32
Reservado (definido por el controlador de diseño de teclado).
 

Si la función no encuentra ninguna tecla que se traduzca al código de carácter pasado, los bytes de orden bajo y de orden superior contienen –1.

Comentarios

El identificador de configuración regional de entrada es un concepto más amplio que un diseño de teclado, ya que también puede abarcar un convertidor de voz a texto, un método de entrada Editor (IME) o cualquier otra forma de entrada.

En el caso de los diseños de teclado que usan la tecla ALT de la derecha como tecla mayús (por ejemplo, el diseño del teclado francés), el estado de desplazamiento se representa mediante el valor 6, porque la tecla ALT de la derecha se convierte internamente en CTRL+ALT.

Se omiten las traducciones del teclado numérico (VK_NUMPAD0 a través de VK_DIVIDE). Esta función está pensada para traducir caracteres en pulsaciones de teclas solo desde la sección principal del teclado. Por ejemplo, el carácter "7" se traduce en VK_7, no VK_NUMPAD7.

VkKeyScanEx lo usan las aplicaciones que envían caracteres mediante los mensajes WM_KEYUP y WM_KEYDOWN .

Nota

El encabezado winuser.h define VkKeyScanEx 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o 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 (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también