กล่องโต้ตอบสร้าง

กล่องโต้ตอบสร้างควรจะมีเมนูระบบ แถบชื่อเรื่อง และเส้น ขอบบาง ๆ หน้าต่างแบบผุดขึ้น กล่าวคือ แบบกล่องโต้ตอบควรระบุลักษณะ WS_POPUP, WS_CAPTION, WS_BORDER และ WS_SYSMENU ระบบไม่แสดงในกล่องโต้ตอบโดยอัตโนมัตินอกจากแม่แบบระบุลักษณะ WS_VISIBLE.

โปรแกรมประยุกต์สร้างกล่องโต้ตอบที่สร้าง โดยใช้ฟังก์ชันCreateDialogหรือCreateDialogIndirect CreateDialogต้องการชื่อหรือรหัสของทรัพยากรที่ประกอบด้วยแม่แบบกล่องโต้ตอบ CreateDialogIndirectต้องใช้หมายเลขอ้างอิงของวัตถุของหน่วยความจำประกอบด้วยแม่แบบกล่องโต้ตอบ นอกจากนี้ฟังก์ชันสองฟังก์ชันอื่น ๆCreateDialogParamและCreateDialogIndirectParamยังสร้างกล่องโต้ตอบสร้าง พวกเขาผ่านพารามิเตอร์ที่ระบุลงในกระบวนงานของกล่องโต้ตอบเมื่อมีสร้างกล่องโต้ตอบ.

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

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

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

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

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

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

ขั้นตอนในกล่องโต้ตอบต้องไม่เรียกใช้ฟังก์ชันEndDialogการทำลายกล่องโต้ตอบสร้าง.

Index