TranslateAccelerator

ฟังก์ชันTranslateAcceleratorกระบวนการคีย์ลัดสำหรับคำสั่งเมนู ฟังก์ชันแปลWM_KEYDOWNหรือข้อความWM_SYSKEYDOWNให้เป็นWM_COMMANDหรือWM_SYSCOMMAND (ถ้าไม่มีรายการสำหรับคีย์ในตารางที่ระบุเร่ง) และข้อความแล้วส่ง WM_COMMAND หรือ WM_SYSCOMMAND ข้อความโดยตรงกับกระบวนการที่เหมาะสมของหน้าต่าง TranslateAcceleratorกลับจนกว่ากระบวนการหน้าต่างได้ประมวลผลข้อความ.

 int TranslateAccelerator ( HWND  hWnd, / / จัดการปลายทางหน้าต่างHACCELhAccTable, / / จัดการกับตารางการเร่งความเร็วLPMSGlpMsg / / ที่อยู่ของโครงสร้างพร้อมกับข้อความ);
 

พารามิเตอร์

hWnd
จัดการไปยังหน้าต่างข้อความมีการแปล.
hAccTable
จัดการกับตารางที่มีเร่ง ตารางการเร่งต้องถูกโหลด โดยการเรียกฟังก์ชันLoadAcceleratorsหรือสร้างขึ้น โดยการเรียกไปยังฟังก์ชันCreateAcceleratorTable.
lpMsg
ชี้มีโครงสร้างMSGซึ่งประกอบด้วยข้อมูลของข้อความที่ดึงข้อมูลจากคิวข้อความของเธรดการโทร โดยใช้ฟังก์ชันGetMessageหรือPeekMessage.

ส่งกลับค่า

ถ้าฟังก์ชันสำเร็จ ค่าส่งกลับจะไม่ใช่ศูนย์.

ถ้าฟังก์ชันล้มเหลว ส่งคืนค่าเป็นศูนย์ การขอเพิ่มเติมข้อมูลข้อผิดพลาด โทร GetLastError.

หมายเหตุ

เมื่อต้องการแยกแยะความที่ฟังก์ชันนี้ส่งมาจากข้อความที่ส่ง โดยเมนู หรือควบคุม คำสูงใบสั่งของพารามิเตอร์wParam WM_COMMANDหรือWM_SYSCOMMANDข้อความ ประกอบด้วยค่า 1.

รวมคีย์ลัดใช้เพื่อเลือกรายการจากเมนูหน้าต่างจะแปลเป็นข้อความ WM_SYSCOMMAND มีแปลทั้งหมดอื่น ๆ เร่งคีย์ผสมลงในข้อความ WM_COMMAND.

เมื่อTranslateAcceleratorส่งกลับค่าไม่ใช่ศูนย์และข้อความถูกแปล แอปพลิเคชันไม่ควรใช้ฟังก์ชันTranslateMessageการประมวลผลข้อความอีกครั้ง.

การเร่งความเร็วต้องสอดคล้องกับคำสั่งเมนู.

ถ้าคำสั่งลัดตรงกับรายการเมนู แอพลิเคชันจะส่งข้อความWM_INITMENUและWM_INITMENUPOPUPเช่นถ้าผู้ใช้พยายามแสดงเมนู อย่างไรก็ตาม ข้อความเหล่านี้จะไม่ถูกส่งถ้าเงื่อนไขต่อไปนี้มีอยู่:

ถ้าหน้าต่างที่ระบุเป็นหน้าต่างที่ใช้งานอยู่ และไม่มีหน้าต่างมีโฟกัสของแป้นพิมพ์ (ซึ่งโดยทั่วไปแล้วกรณีถ้าหน้าต่างที่ถูกย่อให้เล็กสุด), TranslateAcceleratorแปลข้อความ WM_SYSKEYUP และ WM_SYSKEYDOWN แทนความ WM_KEYUP และ WM_KEYDOWN.

หากเกิดการกดแป้นพิมพ์ลัดที่สัมพันธ์กับรายการเมนูเมื่อหน้าต่างที่เป็นเจ้าของเมนูถูกย่อเล็กสุดTranslateAcceleratorไม่ส่งข้อความ WM_COMMAND อย่างไรก็ตาม ถ้าเกิดการกดแป้นพิมพ์ลัดที่ไม่ตรงกับรายการ ในเมนูของหน้าต่าง หรือ ในเมนูหน้าต่างใด ๆ ฟังก์ชันการส่งข้อความ WM_COMMAND แม้ว่าหน้าต่างที่ถูกย่อให้เล็กสุด.

Windows CE: มีแปลข้อความการคีย์ลัดทั้งหมดลงในข้อความ WM_COMMAND Windows CE ไม่สนับสนุนข้อความ WM_SYSCOMMAND.

QuickInfo

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

ดูเพิ่มเติม

ภาพรวมของแป้นพิมพ์ Acceleratorsแป้นพิมพ์ลัดฟังก์ชัน CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND

Index