กล่องโต้ตอบการพิมพ์

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

Windows NT 5.0 และรุ่นใหม่กว่า: คุณสามารถใช้ฟังก์ชันPrintDlgExเพื่อแสดงแผ่นคุณสมบัติพิมพ์ซึ่งมีหน้าทั่วไปประกอบด้วยตัวควบคุมที่คล้ายคลึงกับกล่องโต้ตอบการพิมพ์ แผ่นคุณสมบัติสามารถมีคุณสมบัติ เฉพาะของโปรแกรมประยุกต์ และ เฉพาะโปรแกรมควบคุมเพิ่มเติมหน้าต่อหน้าทั่วไป.

คุณสร้าง และแสดงกล่องโต้ตอบการพิมพ์โดยการเตรียมใช้งานโครงสร้างแบบPRINTDLGและผ่านโครงสร้างไปยังฟังก์ชันPrintDlg.

ภาพประกอบต่อไปนี้แสดงในกล่องโต้ตอบการพิมพ์ทั่วไป.

หากผู้ใช้คลิกปุ่มตกลง PrintDlgส่งกลับค่า TRUE และใช้โครงสร้างPRINTDLGส่งกลับข้อมูลเกี่ยวกับผู้ใช้ที่เลือก ตัวอย่าง สมาชิกhDevModeและhDevNamesโดยปกติคืนหน่วยความจำระดับโลกที่จับสำหรับ โครงสร้างข้อมูล DEVMODEและDEVNAMES คุณสามารถใช้ข้อมูลในโครงสร้างเหล่านี้เพื่อสร้างบริบทอุปกรณ์หรือมีบริบทข้อมูลสำหรับเครื่องพิมพ์ที่เลือก.

ถ้า ผู้ใช้ยกเลิกกล่องโต้ตอบการพิมพ์หรือเกิดข้อผิดพลาดPrintDlgส่งกลับค่า FALSE คุณสามารถระบุสาเหตุของข้อผิดพลาด โดยใช้ฟังก์ชันCommDlgExtendedErrorเพื่อเรียกค่าความผิดพลาดแบบขยาย.

กล่องโต้ตอบพิมพ์รวมถึงกลุ่มช่วงระยะที่พิมพ์ของปุ่มตัวเลือกซึ่งระบุว่า ผู้ใช้ต้องการพิมพ์หน้าทั้งหมด ช่วงของหน้า หรือเฉพาะข้อความที่เลือก ก่อนการเรียกPrintDlgคุณสามารถตั้งค่าสถานะ PD_ALLPAGES, PD_SELECTION หรือ PD_PAGENUMS เพื่อระบุการเริ่มต้นมีเลือกปุ่มใดอย่างใดอย่างหนึ่ง เมื่อPrintDlgส่งกลับค่า TRUE ฟังก์ชันตั้งค่าหนึ่งค่าสถานะเหล่านี้เพื่อระบุผู้ใช้ที่เลือก ถ้ามีกำหนด PD_PAGENUMS สมาชิกของโครงสร้างPRINTDLG nFromPageและnToPageมีเริ่มต้นและสิ้นสุดหน้าที่ระบุ โดยผู้ใช้ เมื่อต้องการปิดใช้งานปุ่มหน้าและการเชื่อมโยงจากและการควบคุมแก้ไข ตั้งค่าสถานะ PD_NOPAGENUMS เมื่อต้องการปิดใช้งานปุ่มเลือกตั้งค่าสถานะ PD_NOSELECTION.

กล่องโต้ตอบประกอบด้วยตัวควบคุมการแก้ไขที่ซึ่งผู้ใช้สามารถพิมพ์จำนวนสำเนาที่จะพิมพ์ ถ้าสมาชิกhDevModeของโครงสร้างPRINTDLGไม่ใช่ NULL สมาชิกdmCopiesของการ โครงสร้างข้อมูล DEVMODEระบุค่าเริ่มต้นสำหรับตัวควบคุมนี้แก้ไข ถ้าhDevModeเป็น NULL สมาชิกnCopiesของโครงสร้างPRINTDLGระบุค่าเริ่มต้น เมื่อPrintDlgส่งกลับnCopiesบ่งชี้จำนวนของสำเนาที่ระบุ โดยผู้ใช้โดยทั่วไป อย่างไรก็ตาม ถ้าคุณตั้งค่าสถานะ PD_USEDEVMODECOPIESANDCOLLATE เมื่อคุณสร้างกล่องโต้ตอบnCopiesถูกตั้งค่าเป็น 1 การกลับมาเสมอ และสมาชิกdmCopiesของDEVMODEบ่งชี้จำนวนของสำเนาที่จะพิมพ์.

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

กล่องกาเครื่องหมายพิมพ์ไปยังแฟ้มบ่งชี้ว่า ผู้ใช้ที่ต้องการส่งออก ไปยังแฟ้มแทนที่ ไปยังเครื่องพิมพ์ คุณสามารถตั้งค่าสถานะ PD_PRINTTOFILE เพื่อเริ่มเลือกกล่องกาเครื่องหมาย เมื่อต้องการซ่อนกล่องกาเครื่องหมาย ตั้งค่าสถานะ PD_HIDEPRINTTOFILE เมื่อต้องการปิดการใช้งานได้ กำหนดค่าสถานะ PD_DISABLEPRINTTOFILE ถ้าผู้ใช้เลือกตัวเลือกการพิมพ์ไปยังแฟ้มกำหนดค่าสถานะ PD_PRINTTOFILE PrintDlgและส่งกลับค่า "แฟ้ม: " ที่ออฟเซตที่ระบุ โดยสมาชิกwOutputOffsetของโครงสร้างDEVNAMES เมื่อคุณเรียกใช้การ ระบุฟังก์ชันStartDocเพื่อเริ่มต้นการดำเนินการพิมพ์ นี้ "แฟ้ม: " สายอักขระในสมาชิกlpszOutputของการ DOCINFOโครงสร้าง ระบุข้อความนี้ทำให้ระบบย่อยการพิมพ์การสอบถามผู้ใช้สำหรับชื่อของแฟ้มผลลัพธ์.

โดยค่าเริ่มต้น กล่องโต้ตอบการพิมพ์เริ่มต้นแสดงข้อมูลเกี่ยวกับเครื่องพิมพ์เริ่มต้นปัจจุบัน คุณสามารถนำการแสดงข้อมูลสำหรับเครื่องพิมพ์อื่นที่ติดตั้ง โดยการเตรียมใช้งานการ DEVMODEหรือโครงสร้างของDEVNAMESและการกำหนดหน่วยความจำกลางจัดการสำหรับโครงสร้างไปยังสมาชิกhDevModeหรือhDevNames ชื่อของอุปกรณ์คุณระบุ ในสมาชิกdmDeviceNameของโครงสร้างข้อมูล DEVMODEหรือสมาชิกwDriverOffsetของโครงสร้างDEVNAMESต้องระบุอุปกรณ์เครื่องพิมพ์ที่จะแสดงอยู่ในส่วน [Devices] ของชนะแฟ้ม INI หากอุปกรณ์ไม่ปรากฏPrintDlgส่งกลับข้อผิดพลาด.

คุณสามารถนำPrintDlgการสร้างอุปกรณ์บริบทหรือบริบทข้อมูลสำหรับเครื่องพิมพ์ โดยการกำหนดค่าสถานะ PD_RETURNDC หรือ PD_RETURNIC ในสถานะสมาชิกของโครงสร้างPRINTDLG ฟังก์ชันจะส่งกลับหมายเลขอ้างอิงบริบทอุปกรณ์หรือบริบทข้อมูลในสมาชิกhDC ถ้าคุณใช้การตั้งค่าสถานะ PD_RETURNDC คุณสามารถใช้บริบทอุปกรณ์ในการสร้างผลผลิตสำหรับเครื่องพิมพ์.

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

โดยค่าเริ่มต้นPrintDlgแสดงข้อความเมื่อมีข้อผิดพลาดเกิดขึ้น ตัวอย่าง ฟังก์ชันจะแสดงข้อผิดพลาดถ้ามีการติดตั้งเครื่องพิมพ์ไม่ เมื่อต้องการป้องกันไม่ให้ฟังก์ชันจะแสดงข้อความเตือนเหล่านี้ ตั้งค่าสถานะ PD_NOWARNING.

Index