La funzione ToAsciiEx converte il codice tasto virtuale specificato e stato della tastiera per il carattere o i caratteri corrispondenti. La funzione si traduce il codice utilizzando la lingua di input e il layout di tastiera fisica identificato l'handle del layout di tastiera dato.
int (ToAsciiEx UINT uVirtKey, / / tasto virtuale di codiceUINTuScanCode, / / codice di scansionePBYTElpKeyState, / / chiave dello stato di matriceLPWORDlpChar, / / buffer per chiave tradotteUINTuFlags, / / bandiera attivo-menù HKLdwhkl / / handle layout di tastiera);
Il basso bit, se impostata, indica che la chiave è attivabile/disattivabile su. In questa funzione, solo il bit di attivazione/disattivazione del tasto BLOC MAIUSC è rilevante. Lo stato di attivazione/disattivazione dei tasti Bloc num lock e scorrimento viene ignorato.
Se il tasto specificato è un tasto morto, il valore restituito è negativo. In caso contrario, è uno dei valori seguenti.
| Valore | Significato |
|---|---|
| 0 | La chiave specificata virtuale non ha alcuna traduzione per lo stato corrente della tastiera. |
| 1 | Un carattere è stato copiato nel buffer. |
| 2 | Due personaggi sono stati copiati nel buffer. Questo di solito accade quando un personaggio chiave di morti (accento o segno diacritico) memorizzato nel layout di tastiera non può essere composti con la chiave specificata virtuale per formare un singolo carattere. |
I parametri forniti alla funzione ToAsciiEx potrebbero non essere sufficienti per tradurre il codice tasto virtuale, perché una chiave morta precedente viene memorizzata nel layout della tastiera.
In genere, ToAsciiEx esegue la traduzione basata sul codice tasto virtuale. In alcuni casi, tuttavia, bit 15 del parametro uScanCode può essere usato per distinguere un tasto e un comunicato chiave. Il codice di analisi viene utilizzato per tradurre ALT +tasto numerico combinazioni.
Anche se Bloc num è una chiave di attivazione/disattivazione che influisce sul comportamento della tastiera, ToAsciiEx ignora l'impostazione attiva/disattiva (il basso bit) di lpKeyState (VK_NUMLOCK, perché il parametro di uVirtKey da solo è sufficiente a distinguere i tasti di movimento cursore (VK_HOME, VK_INSERT e così via) dai tasti numerici (VK_DECIMAL, VK_NUMPAD0 - VK_NUMPAD9).
nbsp; Windows &NT: richiede una versione 4.0 o successive.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Non supportato.
Intestazione:Dichiarati in winuser.
Importare librerie:Utilizzare user32.lib.
Cenni preliminari sull'Input di tastiera, funzioni di Input di tastiera, LoadKeyboardLayout, MapVirtualKeyEx, OemKeyScan, ToAscii, VkKeyScan
Rimedio: Inserire il CD-ROM CD di MSDN Library.