การเขียนการวนรอบข้อความหลัก

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

ตัวอย่างต่อไปนี้แสดงการวนรอบข้อความของแอพลิเคชัน MDI ทั่วไป.

ในขณะที่ (GetMessage (แอมป์ msg, (HWND) NULL, 0, 0)) {ถ้า (TranslateMDISysAccel (hwndMDIClient, & msg) & &TranslateAccelerator (hwndFrame, hAccel และ msg))
    {TranslateMessage(&msg) 
        DispatchMessage(&msg) 
    } 
} 

 

ฟังก์ชันTranslateMDISysAccelแปลข้อความWM_KEYDOWNลงในข้อความWM_SYSCOMMANDและส่งข้อมูลเหล่านั้นไปหน้าต่างลูก MDI ที่ใช้งานอยู่ ถ้าข้อความไม่ใช่ข้อความเร่ง MDI ฟังก์ชันจะส่งกลับค่า FALSE ในกรณีที่โปรแกรมประยุกต์จะใช้ฟังก์ชันTranslateAcceleratorเพื่อตรวจสอบว่า คีย์การเร่งความเร็วแอพลิเคชันที่กำหนดเองใด ๆ ถูกกด ถ้า ไม่ ลูป dispatches ข้อความลงในกระบวนงานของหน้าต่างที่เหมาะสม.