ToAscii

De ToAscii functie zet de opgegeven virtuele-toonsoort wetboek en de status van het toetsenbord naar het bijbehorende teken of tekens. De functie vertaalt de code met behulp van de invoertaal en de fysieke toetsenbordindeling geïdentificeerd door het gegeven toetsenbord lay-out handvat.

int () ToAscii UINT  uVirtKey, / / virtuele-key codeUINTuScanCode, / / code scannenPBYTElpKeyState, / / sleutel-staat matrixLPWORDlpChar, / / buffer voor vertaalde sleutelUINTuFlags / / actief-menu markeren);
 

Parameters

uVirtKey
Hiermee geeft u de virtuele-sleutel code te vertalen.
uScanCode
Hiermee geeft u de hardware Scancode van de sleutel te vertalen. De high-bit van deze waarde is ingesteld als de sleutel is up (niet ingedrukt).
lpKeyState
Aanwijzer naar een 256-byte-matrix die de huidige status van het toetsenbord bevat. Elk element (byte) in de matrix bevat de status van één toets. Als de hoge-orde bit van een byte is ingesteld, is de toets omlaag (ingedrukt).

De lage bit, als deze is ingesteld, geeft aan dat de sleutel is gevoorzid. In deze functie is alleen de knevel bit van de caps lock-toets relevant. De knevel staat van de num lock en scroll lock toetsen wordt genegeerd.

lpChar
Pointer naar de buffer die de vertaalde teken of tekens ontvangt.
uFlags
Hiermee geeft u aan of een menu actief is. Deze parameter moet 1 als een menu actief, of 0 anders is.

Retourwaarden

Als de opgegeven sleutel een dode sleutel is, is de geretourneerde waarde negatief. Anders, het is een van de volgende waarden.

Waarde Betekenis
0 De opgegeven virtuele sleutel heeft geen vertaling voor de huidige status van het toetsenbord.
1 Eén teken aan de buffer gekopieerd.
2 Twee tekens werden naar de buffer gekopieerd. Dit gebeurt meestal wanneer een dode-sleutel karakter (accent of diakritisch teken) opgeslagen in de toetsenbordindeling kan niet worden samengesteld met de opgegeven virtuele sleutel vormen één teken.

Opmerkingen

De parameters geleverd aan de ToAscii functie misschien niet volstaan om te vertalen de virtuele-sleutel code, omdat een vorige dode sleutel is opgeslagen in de toetsenbordindeling.

ToAscii voert, de vertaling op basis van de virtuele-sleutel code. In sommige gevallen, kan echter bits 15 van de uScanCode -parameter worden gebruikt om te onderscheiden tussen een toetsaanslag en een belangrijke release. De Scancode wordt gebruikt voor het vertalen van ALT +Numeriek- toetscombinaties.

Hoewel num-lock een knevel sleutel die toetsenbord gedrag beïnvloedt is, ToAscii negeert de knevel instelling (de lage bitsnelheid) van lpKeyState (VK_NUMLOCK, omdat de uVirtKey parameter alleen al is voldoende om te onderscheiden van de cursortoetsen beweging (VK_HOME, VK_INSERT, enzovoort) van de numerieke toetsen (VK_DECIMAL, VK_NUMPAD0 - VK_NUMPAD9).

Syntaxisinfo

nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Niet-ondersteunde.
Header:Verklaard in winuser.h.
Bibliotheek importeren:User32.lib gebruiken.

Zie ook

Toetsenbord Input overzicht, toetsenbord Input functies, OemKeyScan, ToUnicode, VkKeyScan

Index