CDialog

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

วัตถุCDialogเป็นการรวมกันของแม่แบบโต้ตอบและการCDialog-มาคลา ใช้การโต้ตอบเพื่อสร้างต้นแบบการโต้ตอบ และจัดเก็บไว้ในทรัพยากร แล้วใช้ ClassWizard ในการสร้างคลาสที่ได้รับมาจากCDialog?

กล่องโต้ตอบ เหมือนหน้าต่างอื่น รับข้อความจาก Windows ในกล่องโต้ตอบ คุณสนใจโดยเฉพาะอย่างยิ่งในการจัดการข้อความแจ้งเตือนจากกล่องโต้ตอบการควบคุมเนื่องจากเป็นวิธีการที่ผู้ใช้โต้ตอบกับกล่องโต้ตอบของคุณ ClassWizard เรียกดูผ่านข้อความอาจเกิดขึ้นในแต่ละตัวควบคุมในกล่องโต้ตอบของคุณ และคุณสามารถเลือกข้อความที่คุณต้องการจัดการ ClassWizard แล้วเพิ่มข้อความเหมาะสมแผนผังรายการและข้อความจัดการสมาชิกฟังก์ชันเป็นคลาสใหม่สำหรับคุณ คุณจำเป็นต้องเขียนรหัสเฉพาะของโปรแกรมประยุกต์ในฟังก์ชันตัวจัดการสมาชิกเท่านั้น?

ถ้าคุณต้องการ คุณสามารถเสมอเขียนข้อความแผนผังรายการและฟังก์ชันสมาชิกด้วยตัวคุณเองแทนการใช้ ClassWizard?

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

นอกจากนี้ ClassWizard แล้วเขียนข้อมูลแผนที่การจัดการการแลกเปลี่ยนข้อมูลระหว่างตัวแปรของสมาชิกและตัวควบคุมของกล่องโต้ตอบโดยอัตโนมัติ ข้อมูลแผนที่แสดงฟังก์ชันที่เตรียมใช้งานตัวควบคุมในกล่องโต้ตอบกับค่าเหมาะสม เรียกข้อมูล และตรวจสอบข้อมูล?

เมื่อต้องการสร้างกล่องโต้ตอบโมดอล สร้างวัตถุบนกองซ้อนให้ใช้ที่กำหนดสำหรับคลาสโต้ตอบรับของคุณ และเรียกDoModalในการสร้างหน้าต่างโต้ตอบและตัวควบคุมแล้ว ถ้าคุณต้องการสร้างกล่องโต้ตอบสร้าง โทรสร้างในการกำหนดของคลาสโต้ตอบของคุณ?

คุณยังสามารถสร้างแม่แบบในหน่วยความจำ โดยใช้แบบ DLGTEMPLATEข้อมูลโครงสร้างตามที่อธิบายไว้ในเอกสารประกอบ Win32 SDK หลังจากที่คุณสร้างวัตถุCDialogเรียกCreateIndirectในการสร้างกล่องโต้ตอบสร้าง หรือโทรInitModalIndirectและDoModalเพื่อสร้างกล่องโต้ตอบโมดอล?

ClassWizard เขียนและการแลกเปลี่ยนข้อมูลแผนที่ในการแทนที่ของCWnd::DoDataExchangeที่เพิ่ม ClassWizard ให้กับคลาสโต้ตอบของคุณใหม่ ดูฟังก์ชันDoDataExchangeสมาชิกในCWndสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานและการแลกเปลี่ยน?

ทั้งที่โปรแกรมเมอร์และ framework โทรDoDataExchangeทางอ้อมผ่านการเรียกไปยังCWnd::UpdateData?

กรอบเรียกUpdateDataเมื่อผู้ใช้คลิกที่ปุ่ม OK เพื่อปิดกล่องโต้ตอบโมดอล (ข้อมูลจะไม่เรียกว่ามีคลิกปุ่มยกเลิกการ) เริ่มต้นใช้งานการOnInitDialogยังเรียกUpdateDataในการกำหนดค่าเริ่มต้นของตัวควบคุม โดยปกติคุณแทนOnInitDialogในการเตรียมใช้งานการควบคุมเพิ่มเติม OnInitDialogเรียกว่าหลังจากที่ควบคุมการโต้ตอบทั้งหมดที่ถูกสร้างขึ้น และก่อนกล่องโต้ตอบเพียง กล่องจะปรากฏ?

คุณสามารถเรียกCWnd::UpdateDataตลอดเวลาในระหว่างการดำเนินการของกล่องโต้ตอบโมดอล หรือสร้าง?

ถ้าคุณพัฒนากล่องโต้ตอบด้วยตนเอง คุณเพิ่มตัวแปรจำเป็นสมาชิกคลากล่องโต้ตอบรับด้วยตนเอง และคุณเพิ่มสมาชิกฟังก์ชันการตั้งค่า หรือการได้รับค่าเหล่านี้?

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ClassWizard ดู ClassWizard ที่ใช้ในการแนะนำของ Visual c ++ Programmer ของ?

สายCWinApp::SetDialogBkColorเพื่อตั้งค่าสีพื้นหลังสำหรับกล่องโต้ตอบในโปรแกรมประยุกต์ของคุณ?

กล่องโต้ตอบโมดอลปิดโดยอัตโนมัติเมื่อผู้ใช้กดปุ่ม OK หรือยกเลิกหรือรหัสของคุณเมื่อเรียกฟังก์ชันEndDialogสมาชิก?

เมื่อคุณใช้กล่องโต้ตอบสร้าง เสมอแทนที่ฟังก์ชันสมาชิกOnCancelและโทรDestroyWindowจากภายใน ไม่เรียกคลาสพื้นฐานCDialog::OnCancelเนื่องจากเรียกEndDialogซึ่งจะทำให้กล่องโต้ตอบการมองไม่เห็น แต่จะทำลายมัน นอกจากนี้คุณยังควรแทนที่PostNcDestroyสำหรับกล่องโต้ตอบสร้างเพื่อลบนี้เนื่องจากกล่องโต้ตอบสร้างถูกมักจะมีการปันส่วนด้วยใหม่ กล่องโต้ตอบโมดอลที่มักจะถูกสร้างขึ้นบนเฟรม และไม่จำเป็นต้องล้างข้อมูลPostNcDestroy?

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับCDialogให้ดูบทความ หัวข้อของกล่องโต้ตอบin Visual c ++ Programmer ของรายการแนะนำ?

#รวม lt;afxwin.h>

สมาชิกของคลาส|nbsp คลาสพื้นฐาน| แผนภูมิของลำดับชั้น(&N)

Samples    MFC Sample DBFETCH MFC Sample DLGCBR32 MFC Sample DLGTEMPL MFC Sample EXTBIND MFC Sample FTPTREE MFC Sample HELLO MFC Sample MDIBIND MFC Sample VCTERM

Index