[นี่คือเอกสารเบื้องต้นและเรื่องการเปลี่ยนแปลง]
PRINTDLGEXโครงสร้างประกอบด้วยข้อมูลที่ใช้ในฟังก์ชันPrintDlgExจะเริ่มต้นแผ่นคุณสมบัติการพิมพ์ หลังจากผู้ใช้ปิดแผ่นคุณสมบัติ ระบบใช้โครงสร้างนี้เพื่อส่งกลับข้อมูลเกี่ยวกับผู้ใช้ที่เลือก.
typedef struct tagPDEX {
DWORD lStructSize
HWND hwndOwner
HGLOBAL hDevMode
HGLOBAL hDevNames
HDC hDC
DWORD Flags
DWORD Flags2
DWORD ExclusionFlags
DWORD nPageRanges
DWORD nMaxPageRanges
LPPRINTPAGERANGE lpPageRanges
DWORD nMinPage
DWORD nMaxPage
DWORD nCopies
HINSTANCE hInstance
LPCTSTR lpPrintTemplateName
LPUNKNOWN lpCallback
DWORD nPropertyPages
HPROPSHEETPAGE * lphPropertyPages
DWORD nStartPage
DWORD dwResultAction
} PRINTDLGEX, * LPPRINTDLGEX
ถ้าhDevModeมีค่า NULL ในการป้อนข้อมูลPrintDlgExจัดสรรหน่วยความจำสำหรับโครงสร้างข้อมูล DEVMODEเริ่มต้นของสมาชิกเพื่อบ่งชี้ถึงการป้อนข้อมูลของผู้ใช้ และส่งกลับหมายเลขอ้างอิงที่ระบุว่า.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสมาชิกhDevModeและhDevNamesดูส่วนหมายเหตุที่ส่วนท้ายของหัวข้อนี้.
สมาชิกhDevNamesสามารถเป็น NULL ในซึ่งกรณีPrintDlgExจัดสรรหน่วยความจำสำหรับโครงสร้างDEVNAMES , initializes สมาชิกเพื่อระบุผู้ใช้ ของการป้อนข้อมูล และส่งกลับตัวเลขอ้างอิงที่ระบุไว้.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสมาชิกhDevModeและhDevNamesดูส่วนหมายเหตุที่ส่วนท้ายของหัวข้อนี้.
| PD_ALLPAGES | |
| ค่าสถานะเริ่มต้นที่บ่งชี้ว่า ตอนแรกเลือกปุ่มวิทยุทั้งหมด ธงนี้ใช้เป็นตัวยึดเพื่อบ่งชี้ว่า ไม่ระบุค่าสถานะ PD_PAGENUMS, PD_SELECTION และ PD_CURRENTPAGE. | |
| PD_COLLATE | |
| หากถูกตั้งค่าสถานะนี้ กล่องกาเครื่องหมายทีมีการตรวจสอบ. ถ้าตั้งค่าสถานะนี้เมื่อส่งกลับของฟังก์ชันPrintDlgExแอพลิเคชันต้องจำลองการเปรียบเทียบของหลายสำเนา สำหรับข้อมูลเพิ่มเติม ให้ดูคำอธิบายของค่าสถานะ PD_USEDEVMODECOPIESANDCOLLATE. |
|
| PD_CURRENTPAGE | |
| หากถูกตั้งค่าสถานะนี้ มีเลือกปุ่มวิทยุเพจปัจจุบัน ถ้าไม่มีค่าสถานะ PD_PAGENUMS, PD_SELECTION หรือ PD_CURRENTPAGE ตั้ง มีเลือกปุ่มวิทยุทั้งหมด. | |
| PD_DISABLEPRINTTOFILE | |
| กล่องกาเครื่องหมายพิมพ์ไปที่แฟ้มที่ปิดใช้งาน. | |
| PD_ENABLEPRINTTEMPLATE | |
| บ่งชี้ว่า สมาชิกที่hInstanceและlpPrintTemplateNameระบุได้แทนที่แม่แบบกล่องโต้ตอบการเริ่มต้นในส่วนล่างของหน้าทั่วไป แม่แบบเริ่มต้นประกอบด้วยตัวควบคุมที่ใกล้เคียงกับของกล่องโต้ตอบการพิมพ์ ระบบใช้แม่แบบที่ระบุเพื่อสร้างหน้าต่างที่เป็นเด็กของหน้าทั่วไป. | |
| PD_ENABLEPRINTTEMPLATEHANDLE | |
| บ่งชี้ว่า สมาชิกhInstanceที่ระบุข้อมูลบล็อกที่ประกอบด้วยแม่แบบกล่องโต้ตอบที่มากมายใส่ไว้ แม่แบบนี้แทนที่แม่แบบกล่องโต้ตอบเริ่มต้นในส่วนล่างของหน้าทั่วไป ระบบใช้แม่แบบที่ระบุในการสร้างหน้าต่างที่เป็นเด็กของหน้าทั่วไป ระบบสมาชิกlpPrintTemplateNameละเว้นถ้ามีระบุค่าสถานะนี้. | |
| PD_EXCLUSIONFLAGS | |
| บ่งชี้ว่า สมาชิกExclusionFlagsที่ระบุรายการจะถูกแยกออกจากหน้าคุณสมบัติโปรแกรมควบคุมเครื่องพิมพ์ ถ้าไม่มีการตั้งค่าสถานะนี้ รายการจะถูกแยกออก โดยเริ่มต้นจากหน้าคุณสมบัติโปรแกรมควบคุมเครื่องพิมพ์ ส่วนขยายที่ป้องกันการทำสำเนารายการระหว่างหน้าทั่วไปหน้าใดก็ได้ระบุโปรแกรมประยุกต์ และหน้าโปรแกรมควบคุมเครื่องพิมพ์. | |
| PD_HIDEPRINTTOFILE | |
| ซ่อนกล่องกาเครื่องหมายพิมพ์ไปที่แฟ้ม. | |
| PD_NOCURRENTPAGE | |
| ปิดใช้งานปุ่มเพจปัจจุบัน. | |
| PD_NOPAGENUMS | |
| ปิดใช้งานปุ่มPagesและตัวควบคุมการแก้ไขที่เกี่ยวข้อง. | |
| PD_NOSELECTION | |
| ปิดใช้งานปุ่มเลือก. | |
| PD_NOWARNING | |
| ป้องกันไม่ให้ข้อความแจ้งเตือนที่แสดงเมื่อมีข้อผิดพลาดเกิดขึ้น. | |
| PD_PAGENUMS | |
| หากถูกตั้งค่าสถานะนี้ มีเลือกปุ่มวิทยุเพ ถ้าไม่มีค่าสถานะ PD_PAGENUMS, PD_SELECTION หรือ PD_CURRENTPAGE ตั้ง มีเลือกปุ่มวิทยุทั้งหมด. ถ้าตั้งค่าสถานะนี้เมื่อส่งกลับของฟังก์ชันPrintDlgExสมาชิกlpPageRangesบ่งชี้ว่า ช่วงหน้าที่ระบุ โดยผู้ใช้. |
|
| PD_PRINTTOFILE | |
| หากถูกตั้งค่าสถานะนี้ มีเลือกกล่องกาเครื่องหมายพิมพ์ไปที่แฟ้ม. ถ้าตั้งค่าสถานะนี้เมื่อส่งกลับPrintDlgExออฟเซตที่ระบุ โดยสมาชิกwOutputOffsetของโครงสร้างDEVNAMESมีสาย "แฟ้ม: " เมื่อคุณเรียกใช้การ ระบุฟังก์ชันStartDocเพื่อเริ่มต้นการดำเนินการพิมพ์ นี้ "แฟ้ม: " สายอักขระในสมาชิกlpszOutputของการ DOCINFOโครงสร้าง ระบุข้อความนี้ทำให้ระบบย่อยการพิมพ์การสอบถามผู้ใช้สำหรับชื่อของแฟ้มผลลัพธ์. |
|
| PD_RETURNDC | |
| ทำให้PrintDlgExไปกลับบริบทอุปกรณ์ที่ตรงกับการเลือกผู้ใช้ที่เกิดขึ้นในแผ่นคุณสมบัติ ส่งกลับค่าบริบทอุปกรณ์ในhDC. | |
| PD_RETURNDEFAULT | |
| หากถูกตั้งค่าสถานะนี้ ฟังก์ชันPrintDlgExการแสดงแผ่นคุณสมบัติ แทน มันตั้งค่าสมาชิกhDevNamesและhDevModeในการจับเพื่อ โครงสร้างข้อมูล DEVMODEและDEVNAMESที่จะกำหนดค่าเริ่มต้นสำหรับเครื่องพิมพ์เริ่มต้นของระบบ ทั้งhDevNamesและhDevModeต้องเป็นค่า NULL หรือPrintDlgExส่งกลับข้อผิดพลาด. | |
| PD_RETURNIC | |
| คล้ายคลึงกับธง PD_RETURNDC ยกเว้นค่าสถานะนี้ส่งกลับค่าบริบทข้อมูลการแทนที่เป็นบริบทอุปกรณ์ ถ้าทั้ง PD_RETURNDC และ PD_RETURNIC ไม่มีระบุhDCไม่ได้กำหนดในการแสดงผล. | |
| PD_SELECTION | |
| หากถูกตั้งค่าสถานะนี้การเลือกปุ่มที่เลือก. ถ้าไม่มีค่าสถานะ PD_PAGENUMS, PD_SELECTION หรือ PD_CURRENTPAGE ตั้ง มีเลือกปุ่มวิทยุทั้งหมด. |
|
| PD_USEDEVMODECOPIES | |
| เหมือนกับ PD_USEDEVMODECOPIESANDCOLLATE | |
| PD_USEDEVMODECOPIESANDCOLLATE | |
| ธงนี้บ่งชี้ว่า โปรแกรมประยุกต์ของคุณสนับสนุนหลายสำเนาและเปรียบเทียบ ตั้งค่าสถานะนี้ป้อนข้อมูลเพื่อบ่งชี้ว่า โปรแกรมประยุกต์ของคุณไม่สนับสนุนหลายสำเนาและเปรียบเทียบ ในกรณีนี้ สมาชิกnCopiesของโครงสร้างPRINTDLGEX 1 ส่งกลับเสมอ และ PD_COLLATE ไม่ได้ถูกกำหนดในสถานะสมาชิก. ถ้าไม่มีการตั้งค่าสถานะนี้ แอพลิเคชันจะรับผิดชอบสำหรับการพิมพ์ และ collating หลายสำเนา ในกรณีนี้ สมาชิกnCopiesของโครงสร้างPRINTDLGEXบ่งชี้จำนวนของสำเนาที่ผู้ใช้ต้องการพิมพ์ และตั้งค่าสถานะ PD_COLLATE ในสถานะสมาชิกบ่งชี้ว่า ผู้ใช้ต้องการเปรียบเทียบ. คำนึงถึงว่าธงนี้มีการตั้งค่า แอปพลิเคชันสามารถตรวจสอบจากnCopiesและ PD_COLLATE จำนวนสำเนาเพื่อแสดง และเรียงหน้าว่าจะพิมพ์เหล่านั้นหรือไม่. ถ้ามีกำหนดสถานะนี้ และไม่สนับสนุนโปรแกรมควบคุมเครื่องพิมพ์หลายสำเนา ตัวควบคุมการแก้ไขสำเนาถูกปิดใช้งาน ในทำนองเดียวกัน ถ้าธงนี้มีการตั้งค่า และโปรแกรมควบคุมเครื่องพิมพ์ไม่สนับสนุนการเปรียบเทียบ กล่องกาเครื่องหมายทีถูกปิดใช้งาน. สมาชิกของdmCopiesและdmCollate โครงสร้างข้อมูล DEVMODEมีสำเนา และตรวจเทียบข้อมูลที่ใช้ โดยโปรแกรมควบคุมเครื่องพิมพ์ ถ้าธงนี้มีการตั้งค่า และโปรแกรมควบคุมเครื่องพิมพ์ที่สนับสนุนหลายสำเนา สมาชิกdmCopiesบ่งชี้ว่า จำนวนของสำเนาที่ร้องขอ โดยผู้ใช้ ถ้าธงนี้มีการตั้งค่า และโปรแกรมควบคุมเครื่องพิมพ์รองรับการเปรียบเทียบ สมาชิกdmCollateของโครงสร้างข้อมูล DEVMODEบ่งชี้ว่า ผู้ใช้ต้องการเปรียบเทียบ ถ้าไม่มีการตั้งค่าสถานะนี้ สมาชิกdmCopiesจะส่งกลับค่า 1 และสมาชิกdmCollateจะเป็นศูนย์เสมอ. |
|
| PD_EXCL_COPIESANDCOLLATE | |
| ไม่รวมตัวควบคุมสำเนาและทีจากหน้าคุณสมบัติโปรแกรมควบคุมเครื่องพิมพ์ในแผ่นคุณสมบัติของแบบพิมพ์ เสมอควรจะตั้งค่าสถานะนี้เมื่อโปรแกรมประยุกต์จะใช้ค่าเริ่มต้นสำเนาและทีควบคุมโดยส่วนล่างของหน้าของแผ่นคุณสมบัติพิมพ์ทั่วไป. | |
ถ้ามีระบุค่าสถานะ PD_NOPAGENUMS ค่านี้ไม่ถูกต้อง ถ้าไม่ระบุค่าสถานะ PD_NOPAGENUMS, lpPageRangesต้องไม่ใช่ NULL.
เมื่อPrintDlgExส่งกลับnCopiesมีจำนวนสำเนาที่โปรแกรมประยุกต์ต้องพิมพ์จริง ค่านี้ขึ้นอยู่กับว่าโปรแกรมประยุกต์หรือโปรแกรมควบคุมเครื่องพิมพ์คือรับผิดชอบสำหรับการพิมพ์หลายสำเนา หากถูกตั้งค่าสถานะ PD_USEDEVMODECOPIESANDCOLLATE ในสถานะสมาชิกnCopiesเสมอคือ 1 ในคืน และโปรแกรมควบคุมเครื่องพิมพ์ที่รับผิดชอบในการพิมพ์หลายสำเนา หากถูกตั้งค่าสถานะ แอพลิเคชันจะรับผิดชอบสำหรับการพิมพ์จำนวนสำเนาที่ระบุโดยnCopies สำหรับข้อมูลเพิ่มเติม ให้ดูคำอธิบายของค่าสถานะ PD_USEDEVMODECOPIESANDCOLLATE.
วัตถุควรประกอบด้วยคลาIPrintDialogCallbackจะได้รับข้อความสำหรับกล่องโต้ตอบเด็กในส่วนล่างของหน้าทั่วไป.
ควรประกอบด้วยวัตถุการเรียกกลับ IObjectWithSiteคลารับตัวชี้อินเทอร์เฟซสำหรับIPrintDialogServices การเรียกฟังก์ชันPrintDlgEx QueryInterfaceบนวัตถุเรียกกลับทั้งIID_IPrintDialogCallbackและIID_IObjectWithSiteเพื่อกำหนดอินเทอร์เฟซที่ได้รับการสนับสนุน.
ถ้าคุณไม่ต้องการเรียกใช้ข้อมูลติดต่อกลับ ตั้งค่าlpCallbackเป็น NULL.
| ค่า | ความหมาย |
|---|---|
| PD_RESULT_APPLY | ผู้ใช้คลิกปุ่มการนำไปใช้และรุ่นที่ใหม่กว่าให้คลิกปุ่มยกเลิก บ่งชี้ว่า ผู้ใช้ต้องการใช้การเปลี่ยนแปลงเกิดขึ้นในแผ่นคุณสมบัติ แต่ไม่ต้องการพิมพ์ได้ โครงสร้างของPRINTDLGEXประกอบด้วยข้อมูลที่ระบุ โดยผู้ใช้ในขณะที่คลิกปุ่มApply. |
| PD_RESULT_CANCEL | ผู้ใช้คลิกปุ่มยกเลิก ข้อมูลในโครงสร้างPRINTDLGEXไม่ได้มีการเปลี่ยนแปลง. |
| PD_RESULT_PRINT | ผู้ใช้คลิกที่ปุ่ม'พิมพ์' โครงสร้างของPRINTDLGEXประกอบด้วยข้อมูลที่ระบุ โดยผู้ใช้. |
เมื่อคุณเรียกฟังก์ชันPrintDlgExต้องแน่ใจว่าที่สมาชิกที่wDeviceOffsetของโครงสร้างDEVNAMESไม่เหมือนกับสมาชิกdmDeviceNameของการ โครงสร้างข้อมูล DEVMODE ถ้าสมาชิกเหล่านี้ไม่ได้ระบุเครื่องพิมพ์เดียวกันPrintDlgExเริ่มต้นแผ่นคุณสมบัติการใช้เครื่องพิมพ์ที่ระบุ โดยสมาชิกwDeviceOffset.
โดยทั่วไป ถ้าทั้งhDevModeและhDevNamesเป็น NULL, PrintDlgExเริ่มต้นแผ่นคุณสมบัติการใช้เครื่องพิมพ์เริ่มต้นปัจจุบัน อย่างไรก็ตาม ถ้าถูกตั้งค่าสถานะ PD_RETURNDEFAULT และทั้งhDevModeและhDevNamesเป็น NULL, PrintDlgExใช้สมาชิกhDevNamesและhDevModeเพื่อส่งกลับข้อมูลเกี่ยวกับเครื่องพิมพ์เริ่มต้นปัจจุบัน โดยไม่มีการแสดงแผ่นคุณสมบัติ.
ในระหว่างการดำเนินการของPrintDlgEx, โครงสร้างข้อมูล DEVMODEและDEVNAMESที่คุณระบุไว้ในโครงสร้างPRINTDLGEXอาจจะประกอบด้วยข้อมูลปัจจุบันได้ ด้วยเหตุนี้ หน้าคุณสมบัติเฉพาะโปรแกรมประยุกต์รวมทั้งงานประจำIPrintDialogCallbackสำหรับเพจเริ่มต้นควรใช้อินเทอร์เฟซสำหรับIPrintDialogServicesเพื่อเรียกข้อมูลเกี่ยวกับสถานะของเครื่องพิมพ์ปัจจุบัน.
nbsp Windows &NT:ต้องการรุ่น 5.0 หรือรุ่นที่ใหม่กว่า
Windows:ไม่สนับสนุน
Windows CE:ไม่สนับสนุน
หัวข้อ:ประกาศใน commdlg.h
ไลบรารีที่นำเข้า:ใช้ comdlg32.lib
Unicode:กำหนดเป็นโครงสร้างแบบ Unicode และ ANSI.
Common Dialog Box Library Overview, Common Dialog Box Structures, CreateDC, CreateIC, CreatePropertySheetPage, DEVMODE, DEVNAMES, IObjectWithSite, IPrintDialogCallback, IPrintDialogServices, PrintDlgEx