Share via


Funzione MapVirtualKeyExA (winuser.h)

Converte (mappe) un codice di chiave virtuale in un codice di analisi o un valore di carattere oppure converte un codice di analisi in un codice chiave virtuale. La funzione converte i codici usando la lingua di input e un identificatore delle impostazioni locali di input.

Sintassi

UINT MapVirtualKeyExA(
  [in]                UINT uCode,
  [in]                UINT uMapType,
  [in, out, optional] HKL  dwhkl
);

Parametri

[in] uCode

Tipo: UINT

Codice chiave virtuale o analisi del codice per una chiave. Il modo in cui questo valore viene interpretato dipende dal valore del parametro uMapType .

[in] uMapType

Tipo: UINT

Traduzione da eseguire. Il valore di questo parametro dipende dal valore del parametro uCode .

Valore Significato
MAPVK_VK_TO_VSC
0
Il parametro uCode è un codice di chiave virtuale e viene convertito in un codice di analisi. Se si tratta di un codice di chiave virtuale che non distingue tra chiavi a sinistra e destra, viene restituito il codice di analisi a sinistra. Se non esiste alcuna traduzione, la funzione restituisce 0.
MAPVK_VSC_TO_VK
1
Il parametro uCode è un codice di analisi e viene convertito in un codice di chiave virtuale che non distingue tra chiavi a sinistra e destra. Se non esiste alcuna traduzione, la funzione restituisce 0.
Windows Vista e versioni successive: il byte elevato del valore uCode può contenere 0xe0 o 0xe1 per specificare il codice di analisi esteso.
MAPVK_VK_TO_CHAR
2
Il parametro uCode è un codice di chiave virtuale e viene convertito in un valore di carattere senza spostamento nella parola di ordine basso del valore restituito. Le chiavi non recapitate (diacritici) sono indicate impostando il bit superiore del valore restituito. Se non esiste alcuna traduzione, la funzione restituisce 0. Vedere la sezione Osservazioni.
MAPVK_VSC_TO_VK_EX
3
Il parametro uCode è un codice di analisi e viene convertito in un codice di chiave virtuale che distingue tra chiavi a sinistra e destra. Se non esiste alcuna traduzione, la funzione restituisce 0.
Windows Vista e versioni successive: il byte elevato del valore uCode può contenere 0xe0 o 0xe1 per specificare il codice di analisi esteso.
MAPVK_VK_TO_VSC_EX
4
Windows Vista e versioni successive: Il parametro uCode è un codice di chiave virtuale e viene convertito in un codice di analisi. Se si tratta di un codice di chiave virtuale che non distingue tra chiavi a sinistra e destra, viene restituito il codice di analisi a sinistra. Se il codice di analisi è un codice di analisi esteso, il byte elevato del valore restituito conterrà 0xe0 o 0xe1 per specificare il codice di analisi esteso. Se non esiste alcuna traduzione, la funzione restituisce 0.

[in, out, optional] dwhkl

Tipo: HKL

Identificatore delle impostazioni locali di input da usare per tradurre il codice specificato. Questo parametro può essere qualsiasi identificatore delle impostazioni locali di input restituito in precedenza dalla funzione LoadKeyboardLayout .

Valore restituito

Tipo: UINT

Il valore restituito è un codice di analisi, un codice di chiave virtuale o un valore di carattere, a seconda del valore di uCode e uMapType. Se non esiste alcuna traduzione, il valore restituito è zero.

Commenti

L'identificatore delle impostazioni locali di input è un concetto più ampio di un layout della tastiera, poiché può anche includere un convertitore voce-a-testo, un metodo di input Editor (IME) o qualsiasi altra forma di input.

Un'applicazione può usare MapVirtualKeyEx per tradurre i codici di analisi nelle costanti di codice chiave virtuale VK_SHIFT, VK_CONTROL e VK_MENU e viceversa. Queste traduzioni non distinguere tra le istanze a sinistra e destra dei tasti MAIUSC, CTRL o ALT.

Un'applicazione può ottenere il codice di analisi corrispondente all'istanza sinistra o destra di una di queste chiavi chiamando MapVirtualKeyEx con uCode impostata su una delle costanti di codice della chiave virtuale seguenti:

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

Queste costanti a sinistra e a destra sono disponibili solo per un'applicazione tramite le funzioni GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKey e MapVirtualKeyEx. Per elencare la tabella completa dei codici chiave virtuale, vedere Codici chiave virtuale.

In MAPVK_VK_TO_CHAR codici di chiave virtuale, 'A'.' Le chiavi Z vengono tradotte in maiuscolo 'A'. Caratteri Z indipendentemente dal layout corrente della tastiera. Se si vuole tradurre un codice di chiave virtuale nel carattere corrispondente, usare la funzione ToAscii .

Nota

L'intestazione winuser.h definisce MapVirtualKeyEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll

Vedi anche