ToAscii

ฟังก์ชันToAsciiแปลรหัสเสมือนของคีย์ที่ระบุและสถานะแป้นพิมพ์ไปอักขระหรือตัวอักษรที่สอดคล้องกัน ฟังก์ชันการแปลรหัสโดยใช้เค้าโครงแป้นพิมพ์ของจริงที่ระบุหมายเลขอ้างอิงการเค้าโครงแป้นพิมพ์ที่กำหนดและภาษาสำหรับการป้อนค่า.

int ToAscii ( UINT  uVirtKey, / / เสมือนคีย์รหัสUINTuScanCode, / / สแกนโค้ดPBYTElpKeyState, / / คีย์สถานะอาร์เรย์LPWORDlpChar, / / บัฟเฟอร์สำหรับคีย์การแปลUINTuFlags / / ค่าสถานะใช้งานอยู่เมนู);
 

พารามิเตอร์

uVirtKey
ระบุรหัสคีย์เสมือนการให้แปล.
uScanCode
ระบุรหัสฮาร์ดแวร์การสแกนของคีย์การแปล บิตการสูงลำดับของค่านี้ถูกตั้งค่าถ้าเป็นสำรองคีย์การ (ไม่ pressed).
lpKeyState
ชี้ไปยังอาร์เรย์ 256 ไบต์ที่ประกอบด้วยสถานะแป้นพิมพ์ปัจจุบัน แต่ละองค์ประกอบ (ไบต์) ในอาร์เรย์ประกอบด้วยสถานะของคีย์เดียวกัน ถ้าบิตการลำดับสูงของไบต์ถูกตั้งค่า คีย์ถูกลง (pressed).

ต่ำบิต ถ้าตั้งค่า การบ่งชี้ว่า คีย์ toggled บน ในฟังก์ชันนี้ เท่าบิตสลับแป้น caps lock มีความเกี่ยวข้อง สลับสถานะของ num lock และเลื่อนล็อกคีย์จะถูกละเว้น.

lpChar
ชี้การบัฟเฟอร์ที่จะได้รับการแปลอักขระหรืออักขระ.
uFlags
ระบุว่า เมนูใช้งานอยู่ พารามิเตอร์นี้ต้องเป็น 1 ถ้าเมนูใช้งานอยู่ หรือ 0 มิฉะนั้น.

ส่งกลับค่า

ถ้าคีย์การระบุ คีย์การตาย ค่าส่งกลับเป็นค่าลบ มิฉะนั้น เป็นหนึ่งในค่าต่อไปนี้.

ค่า ความหมาย
0 แป้นเสมือนที่ระบุได้ไม่มีการแปลสำหรับสถานะปัจจุบันของแป้นพิมพ์.
1 หนึ่งอักขระถูกคัดลอกไปยังบัฟเฟอร์.
2 บัฟเฟอร์ที่ถูกคัดลอกอักขระสองตัว มักนี้จะเกิดขึ้นเมื่อไม่สามารถประกอบตายแป้นอักขระ (เน้นหรืออักขระพิเศษ) เก็บในเค้าโครงแป้นพิมพ์คีย์ที่ระบุที่เสมือนการฟอร์มตัวอักขระหนึ่งตัว.

หมายเหตุ

พารามิเตอร์ให้มาไปยังฟังก์ชันToAsciiอาจไม่เพียงพอในการแปลรหัสคีย์เสมือน เนื่องจากคีย์ตายก่อนหน้านี้จะถูกเก็บในเค้าโครงแป้นพิมพ์.

โดยปกติToAsciiทำการแปลตามรหัสคีย์เสมือน ในบางกรณี อย่างไรก็ตาม บิต 15 ของพารามิเตอร์uScanCodeอาจใช้เพื่อแยกความแตกต่างระหว่างแป้นกดและปล่อยแป้น ใช้การสแกนรหัสสำหรับชุดหมายเลขคีย์ALT + แปล.

แม้ว่า num lock อยู่สลับคีย์ที่มีผลต่อลักษณะการทำงานของแป้นพิมพ์ToAsciiละเว้นการตั้งค่าในการสลับ (บิตต่ำ) ของlpKeyState (VK_NUMLOCK เนื่องจากพารามิเตอร์uVirtKeyเพียงอย่างเดียวไม่เพียงพอสำหรับคีย์การเคลื่อนย้ายเคอร์เซอร์ (VK_HOME, VK_INSERT และอื่น ๆ) ที่แยกความแตกต่างจากปุ่มตัวเลข (VK_DECIMAL, VK_NUMPAD0 - VK_NUMPAD9).

QuickInfo

nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ไม่สนับสนุน
หัวข้อ:ประกาศใน winuser.h
ไลบรารีที่นำเข้า:ใช้ user32.lib.

ดูเพิ่มเติม

ภาพรวมการป้อนข้อมูลของแป้นพิมพ์แป้นพิมพ์ป้อนฟังก์ชัน OemKeyScan, ToUnicode, VkKeyScan

Index