คลาCPrintDialog encapsulates บริการมาจากกล่องโต้ตอบ Windows ทั่วไปสำหรับการพิมพ์ กล่องโต้ตอบการพิมพ์ทั่วไปให้วิธีง่ายในการใช้กล่องโต้ตอบการพิมพ์และการตั้งค่าการพิมพ์ในลักษณะที่สอดคล้องกับมาตรฐานของ Windows?
ถ้าคุณต้องการ คุณสามารถอาศัยกรอบการจัดการหลายด้านของกระบวนการพิมพ์สำหรับโปรแกรมประยุกต์ของคุณ ในกรณีนี้ กรอบแสดงทั่วไปกล่องโต้ตอบ Windows สำหรับการพิมพ์โดยอัตโนมัติ นอกจากนี้คุณยังสามารถมีหมายเลขอ้างอิงกรอบการพิมพ์สำหรับโปรแกรมประยุกต์ของคุณ แต่แทนที่ในกล่องโต้ตอบพิมพ์ทั่วไปกับกล่องโต้ตอบการพิมพ์ของคุณเอง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้กรอบการจัดการงานพิมพ์ ให้ดูบทความ พิมพ์ในVisual c ++ Programmer ของคำแนะนำ?
ถ้าคุณต้องการให้โปรแกรมประยุกต์ของคุณจัดการการพิมพ์ โดยไม่มีความเกี่ยวข้องของกรอบ คุณสามารถใช้คลาสCPrintDialog "เป็น" ด้วยการกำหนดให้ หรือคลาสโต้ตอบของคุณเองที่ได้สืบทอดมาจากCPrintDialogและเขียนการกำหนดให้เหมาะสมกับความต้องการของคุณ ในกรณีใด กล่องโต้ตอบเหล่านี้จะทำงานเหมือนกับกล่องโต้ตอบ MFC มาตรฐานเนื่องจากพวกเขามาจากคลาสCCommonDialog?
การใช้วัตถุCPrintDialogสร้างวัตถุโดยใช้พารามิเตอร์ที่CPrintDialogก่อน เมื่อกล่องโต้ตอบสร้าง คุณสามารถตั้งค่า หรือปรับเปลี่ยนค่าใด ๆ ในโครงสร้างแบบm_pdค่าของตัวควบคุมของกล่องโต้ตอบการกำหนดค่าเริ่มต้น โครงสร้างm_pdเป็นชนิด PRINTDLG สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างนี้ ดูเอกสาร Win32 SDK?
ถ้าคุณไม่ใส่หมายเลขอ้างอิงของคุณเองในm_pdสมาชิกhDevModeและhDevNamesใจเมื่อต้องการเรียกใช้ฟังก์ชัน Windows GlobalFreeสำหรับจับเหล่านี้เมื่อคุณดำเนินการกับกล่องโต้ตอบ เมื่อใช้การใช้งานการตั้งค่าการพิมพ์ของกรอบโดยCWinApp::OnFilePrintSetupคุณไม่จำเป็นต้องจับเหล่านี้ฟรี จับจะถูกบันทึกโดยCWinAppและอยู่รอดในCWinAppของ destructor จะจำเป็นต้องฟรีจับเหล่านี้เมื่อใช้CPrintDialogแบบสแตนด์อโลน?
หลังจากการเตรียมใช้งานตัวควบคุมกล่องโต้ตอบ เรียกฟังก์ชันDoModalสมาชิกเพื่อแสดงกล่องโต้ตอบ และอนุญาตให้ผู้ใช้เลือกตัวเลือกการพิมพ์ DoModalส่งกลับผู้ใช้เลือก OK (IDOK) หรือปุ่มยกเลิก (IDCANCEL)?
ถ้าDoModalส่งกลับIDOKคุณสามารถใช้CPrintDialogของสมาชิกฟังก์ชันใดฟังก์ชันหนึ่งเพื่อเรียกข้อมูลที่ป้อน โดยผู้ใช้?
ฟังก์ชันสมาชิกCPrintDialog::GetDefaultsเป็นประโยชน์สำหรับการดึงข้อมูลปัจจุบันเครื่องพิมพ์เริ่มต้นโดยไม่ต้องแสดงกล่องโต้ตอบ ฟังก์ชันนี้สมาชิกต้องไม่มีการโต้ตอบผู้ใช้?
คุณสามารถใช้ฟังก์ชัน Windows CommDlgExtendedErrorเพื่อตรวจสอบว่า มีข้อผิดพลาดเกิดขึ้นในระหว่างการเริ่มต้นของกล่องโต้ตอบ และ เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับข้อผิดพลาด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันนี้ ดูเอกสาร Win32 SDK?
CPrintDialogอาศัยการ COMMDLGแฟ้ม DLL ที่มาพร้อมกับ Windows รุ่น 3.1 และรุ่นที่ใหม่กว่า?
กล่องโต้ตอบที่กำหนดเอง การได้คลาสที่สืบทอดมาจากCPrintDialogเป็นแม่แบบในการโต้ตอบที่กำหนดเอง และเพิ่มแผนที่ข้อความการประมวลผลข้อความแจ้งเตือนจากตัวควบคุมขยาย ข้อความใด ๆ unprocessed ควรผ่านบนคลาพื้นฐาน การกำหนดฟังก์ชันของ hook ไม่จำเป็น?
การประมวลผลข้อความเดียวกันแตกต่างกันขึ้นอยู่ว่ากล่องโต้ตอบการ ตั้งค่าการพิมพ์หรือการพิมพ์ คุณต้องสืบทอดมาชั้นแต่ละกล่องโต้ตอบ นอกจากนี้คุณยังต้องแทนฟังก์ชัน Windows AttachOnSetupซึ่งสามารถจัดการกับการสร้างกล่องโต้ตอบใหม่เมื่อมีเลือกปุ่ม Print Setup ภายในกล่องโต้ตอบการพิมพ์?
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้CPrintDialog, เรียนโต้ตอบทั่วไปในVisual c ++ Programmer ของคำแนะนำ?
#รวม lt;afxdlgs.h>
สมาชิกของคลาส|nbsp คลาสพื้นฐาน| แผนภูมิของลำดับชั้น(&N)
ตัวอย่างnbsp MFC อย่าง DIBLOOK(&N)
ดูเพิ่มเติมnbspCPrintInfo(&N)