הפונקציה ToAsciiEx מתרגם את קוד מקש וירטואלי שצוין ואת לוח המקשים למצב התו או התווים המתאימים. הפונקציה מתרגם את הקוד באמצעות את שפת הקלט ואת פריסת לוח המקשים הפיזי שזיהה את נקודת האחיזה של פריסת לוח המקשים נתון.
int ToAsciiEx ( UINT uVirtKey, / / מקש וירטואלי קודUINTuScanCode, / / לסרוק קודPBYTElpKeyState, / / מצב מפתח מערךLPWORDlpChar, / / מאגר עבור מפתח מתורגםUINTuFlags, / / תפריט פעיל בדגל HKLdwhkl / / נקודת האחיזה של פריסת לוח מקשים);
קצת הנמוך, אם בחר, מציין כי המקש לחוץ ב. פונקציה זו, רק סיבית דו-מצבית של מקש ה-caps lock הוא רלוונטי. המערכת מתעלמת המדינה דו-מצבי של num lock ולגלול נעילת מפתחות.
אם המפתח שצוין הוא מפתח מת, הערך המוחזר הוא מספר שלילי. אחרת, הוא אחד מהבאים:.
| ערך | משמעות |
|---|---|
| 0 | מפתח וירטואלי שצוין כולל לא תרגום עבור המצב הנוכחי של לוח המקשים. |
| 1 | תו אחד הועתק אל המאגר. |
| 2 | שני תווים שהועתקו אל המאגר. הדבר קורה בדרך כלל כאשר לא ניתן להרכיב תו המלח-מפתח (הדגשה או סימן ניקוד) המאוחסנים בפריסת לוח המקשים באמצעות מפתח וירטואלי שצוין ליצירת תו בודד. |
ייתכן הפרמטרים שסופקו לפונקציה ToAsciiEx אינו מספיק לתרגם את קוד מקש וירטואלי, כיוון מפתח מת קודם מאוחסן את פריסת לוח המקשים.
בדרך כלל, ToAsciiEx מבצעת את התרגום מבוסס על קוד מקש וירטואלי. במקרים מסוימים, עם זאת, מעט 15 הפרמטר uScanCode עשוי לשמש כדי להבדיל בין הקשה על מקש שחרור מקש. קוד סריקה משמש לתרגום ALT +מקש מספר שילובים.
למרות num lock הוא מקש דו-מצבי אשר משפיע על אופן הפעולה של לוח המקשים, ToAsciiEx מתעלם הגדרת דו-מצבי (סיביות נמוך) lpKeyState (VK_NUMLOCK, כיוון הפרמטר uVirtKey לבדו אינו מספיק להבדיל את המפתחות תנועת הסמן (VK_HOME, VK_INSERT וכן הלאה) המקשים המספריים (VK_DECIMAL, VK_NUMPAD0 - VK_NUMPAD9).
nbsp; Windows &NT: מחייב גירסה 4.0 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:לא נתמך.
כותרת עליונה:להצהיר על winuser.h.
ייבוא ספריית:השתמש user32.lib.
מבט כולל על לוח המקשים קלט, בפונקציות קלט של לוח מקשים, LoadKeyboardLayout, MapVirtualKeyEx, OemKeyScan, ToAscii, VkKeyScan