PRINTDLGโครงสร้างประกอบด้วยข้อมูลที่ใช้ในฟังก์ชันPrintDlgจะเริ่มต้นในกล่องโต้ตอบพิมพ์ หลังจากผู้ใช้ปิดกล่องโต้ตอบ ระบบใช้โครงสร้างนี้เพื่อส่งกลับข้อมูลเกี่ยวกับผู้ใช้ที่เลือก.
typedef struct tagPD { / / pd DWORD lStructSize
HWND hwndOwner
จัดการ hDevMode
จัดการ hDevNames
HDC hDC
DWORD Flags
WORD nFromPage
WORD nToPage
WORD nMinPage
WORD nMaxPage
WORD nCopies
HINSTANCE hInstance
DWORD lCustData
LPPRINTHOOKPROC lpfnPrintHook
LPSETUPHOOKPROC lpfnSetupHook
LPCTSTR lpPrintTemplateName
LPCTSTR lpSetupTemplateName
จัดการ hPrintTemplate
จัดการ hSetupTemplate
} PRINTDLG
ถ้าhDevModeมีค่า NULL ในการป้อนข้อมูลPrintDlgจัดสรรหน่วยความจำสำหรับโครงสร้างข้อมูล DEVMODEเริ่มต้นของสมาชิกเพื่อบ่งชี้ถึงการป้อนข้อมูลของผู้ใช้ และส่งกลับหมายเลขอ้างอิงที่ระบุว่า.
หากโปรแกรมควบคุมอุปกรณ์สำหรับเครื่องพิมพ์ที่ระบุไม่สนับสนุนโหมดขยายอุปกรณ์hDevModeเป็น NULL เมื่อส่งกลับPrintDlg.
ถ้าชื่ออุปกรณ์ (ระบุ โดยสมาชิกdmDeviceNameของการ โครงสร้างข้อมูล DEVMODE ) ไม่ปรากฏในส่วน [devices] ของ WININI, PrintDlgส่งกลับข้อผิดพลาด.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสมาชิกhDevModeและhDevNamesดูส่วนหมายเหตุที่ส่วนท้ายของหัวข้อนี้.
สมาชิกhDevNamesสามารถเป็น NULL ในซึ่งกรณีPrintDlgจัดสรรหน่วยความจำสำหรับโครงสร้างDEVNAMES , initializes สมาชิกเพื่อระบุผู้ใช้ ของการป้อนข้อมูล และส่งกลับตัวเลขอ้างอิงที่ระบุไว้.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสมาชิกhDevModeและhDevNamesดูส่วนหมายเหตุที่ส่วนท้ายของหัวข้อนี้.
| PD_ALLPAGES | |
| ค่าสถานะเริ่มต้นที่บ่งชี้ว่า ตอนแรกเลือกปุ่มวิทยุทั้งหมด ธงนี้ใช้เป็นตัวยึดเพื่อบ่งชี้ว่า ไม่ระบุค่าสถานะ PD_PAGENUMS และ PD_SELECTION. | |
| PD_COLLATE | |
| หากถูกตั้งค่าสถานะนี้ กล่องกาเครื่องหมายทีมีการตรวจสอบ. ถ้าตั้งค่าสถานะนี้เมื่อส่งกลับของฟังก์ชันPrintDlgแอพลิเคชันต้องจำลองการเปรียบเทียบของหลายสำเนา สำหรับข้อมูลเพิ่มเติม ให้ดูคำอธิบายของค่าสถานะ PD_USEDEVMODECOPIESANDCOLLATE. |
|
| PD_DISABLEPRINTTOFILE | |
| กล่องกาเครื่องหมายพิมพ์ไปที่แฟ้มที่ปิดใช้งาน. | |
| PD_ENABLEPRINTHOOK | |
| ทำให้ขั้นตอนของ hook ระบุไว้ในสมาชิกlpfnPrintHook นี้ทำให้ขั้นตอนของ hook สำหรับกล่องโต้ตอบการพิมพ์. | |
| PD_ENABLEPRINTTEMPLATE | |
| บ่งชี้ว่า สมาชิกของhInstanceและlpPrintTemplateNameที่ระบุได้แทนที่แม่พิมพ์กล่องโต้ตอบเริ่มต้น. | |
| PD_ENABLEPRINTTEMPLATEHANDLE | |
| บ่งชี้ว่า สมาชิกhPrintTemplateที่ระบุข้อมูลบล็อกที่ประกอบด้วยแม่แบบกล่องโต้ตอบที่มากมายใส่ไว้ แม่แบบนี้แทนที่แม่แบบเริ่มต้นสำหรับกล่องโต้ตอบการพิมพ์ ระบบสมาชิกlpPrintTemplateNameละเว้นถ้ามีระบุค่าสถานะนี้. | |
| PD_ENABLESETUPHOOK | |
| ทำให้ขั้นตอนของ hook ระบุไว้ในสมาชิกlpfnSetupHook นี้ทำให้ขั้นตอนของ hook สำหรับกล่องโต้ตอบการตั้งค่าการพิมพ์. | |
| PD_ENABLESETUPTEMPLATE | |
| บ่งชี้ว่า สมาชิกของhInstanceและlpSetupTemplateNameที่ระบุได้แทนที่แบบกล่องโต้ตอบการพิมพ์ ตั้งค่าเริ่มต้น. | |
| PD_ENABLESETUPTEMPLATEHANDLE | |
| บ่งชี้ว่า สมาชิกhSetupTemplateที่ระบุข้อมูลบล็อกที่ประกอบด้วยแม่แบบกล่องโต้ตอบที่มากมายใส่ไว้ แม่แบบนี้แทนที่แม่แบบเริ่มต้นสำหรับกล่องโต้ตอบการตั้งค่าการพิมพ์ ระบบสมาชิกlpSetupTemplateNameละเว้นถ้ามีระบุค่าสถานะนี้. | |
| PD_HIDEPRINTTOFILE | |
| ซ่อนกล่องกาเครื่องหมายพิมพ์ไปที่แฟ้ม. | |
| PD_NONETWORKBUTTON | |
| ซ่อน และปิดใช้งานปุ่ม'เครือข่าย'. | |
| PD_NOPAGENUMS | |
| ปิดใช้งานปุ่มPagesและตัวควบคุมการแก้ไขที่เกี่ยวข้อง. | |
| PD_NOSELECTION | |
| ปิดใช้งานปุ่มเลือก. | |
| PD_NOWARNING | |
| ป้องกันไม่ให้ข้อความแจ้งเตือนที่แสดงเมื่อมีไม่มีเครื่องพิมพ์เริ่มต้น. | |
| PD_PAGENUMS | |
| หากถูกตั้งค่าสถานะนี้ มีเลือกปุ่มวิทยุเพ. ถ้าตั้งค่าสถานะนี้เมื่อส่งกลับของฟังก์ชันPrintDlg , nFromPageและnFromPageสมาชิกระบุเริ่มต้นและสิ้นสุดหน้าที่ระบุ โดยผู้ใช้. |
|
| PD_PRINTSETUP | |
| ทำให้ระบบแสดงในกล่องโต้ตอบการพิมพ์ตั้งค่าแทนที่เป็นกล่องโต้ตอบการพิมพ์. | |
| PD_PRINTTOFILE | |
| หากถูกตั้งค่าสถานะนี้ มีเลือกกล่องกาเครื่องหมายพิมพ์ไปที่แฟ้ม. ถ้าตั้งค่าสถานะนี้เมื่อส่งกลับของฟังก์ชันPrintDlgออฟเซตที่ระบุ โดยสมาชิกwOutputOffsetของโครงสร้างDEVNAMESมีสาย "แฟ้ม: " เมื่อคุณเรียกใช้การ ระบุฟังก์ชันStartDocเพื่อเริ่มต้นการดำเนินการพิมพ์ นี้ "แฟ้ม: " สายอักขระในสมาชิกlpszOutputของการ DOCINFOโครงสร้าง ระบุข้อความนี้ทำให้ระบบย่อยการพิมพ์การสอบถามผู้ใช้สำหรับชื่อของแฟ้มผลลัพธ์. |
|
| PD_RETURNDC | |
| ทำให้PrintDlgไปกลับบริบทอุปกรณ์ที่ตรงกับการเลือกในกล่องโต้ตอบผู้ใช้ ส่งกลับค่าบริบทอุปกรณ์ในhDC. | |
| PD_RETURNDEFAULT | |
| หากถูกตั้งค่าสถานะนี้ ฟังก์ชันPrintDlgไม่แสดงกล่องโต้ตอบ แทน มันตั้งค่าสมาชิกhDevNamesและhDevModeในการจับเพื่อ โครงสร้างข้อมูล DEVMODEและDEVNAMESที่จะกำหนดค่าเริ่มต้นสำหรับเครื่องพิมพ์เริ่มต้นของระบบ ทั้งhDevNamesและhDevModeต้องเป็นค่า NULL หรือPrintDlgส่งกลับข้อผิดพลาด. ถ้าเครื่องพิมพ์เริ่มต้นของระบบได้รับการสนับสนุน โดยโปรแกรมเก่าควบคุมเครื่องพิมพ์ (รุ่นก่อนหน้า Windows เวอร์ชัน 3.0), เฉพาะที่hDevNamesจะถูกส่งกลับ hDevModeเป็น NULL. |
|
| PD_RETURNIC | |
| คล้ายคลึงกับธง PD_RETURNDC ยกเว้นค่าสถานะนี้ส่งกลับค่าบริบทข้อมูลการแทนที่เป็นบริบทอุปกรณ์ ถ้าทั้ง PD_RETURNDC และ PD_RETURNIC ไม่มีระบุhDCไม่ได้กำหนดในการแสดงผล. | |
| PD_SELECTION | |
| หากถูกตั้งค่าสถานะนี้การเลือกปุ่มที่เลือก. ถ้าทั้ง PD_PAGENUMS และ PD_SELECTION ไม่ได้ถูกตั้งค่า มีเลือกปุ่มวิทยุทั้งหมด. |
|
| PD_SHOWHELP | |
| ทำให้กล่องโต้ตอบจะแสดงปุ่มที่ช่วยกัน สมาชิกhwndOwnerต้องระบุหน้าต่างไปHELPMSGSTRINGได้รับข้อความที่กล่องโต้ตอบการส่งเมื่อผู้ใช้คลิกที่ปุ่มวิธีใช้ที่ลงทะเบียน. | |
| PD_USEDEVMODECOPIES | |
| เหมือนกับ PD_USEDEVMODECOPIESANDCOLLATE | |
| PD_USEDEVMODECOPIESANDCOLLATE | |
| ธงนี้บ่งชี้ว่า โปรแกรมประยุกต์ของคุณสนับสนุนหลายสำเนาและเปรียบเทียบ ตั้งค่าสถานะนี้ป้อนข้อมูลเพื่อบ่งชี้ว่า โปรแกรมประยุกต์ของคุณไม่สนับสนุนหลายสำเนาและเปรียบเทียบ ในกรณีนี้ สมาชิกnCopiesของโครงสร้างPRINTDLG 1 ส่งกลับเสมอ และ PD_COLLATE ไม่ได้ถูกกำหนดในสถานะสมาชิก. ถ้าไม่มีการตั้งค่าสถานะนี้ แอพลิเคชันจะรับผิดชอบสำหรับการพิมพ์ และ collating หลายสำเนา ในกรณีนี้ สมาชิกnCopiesของโครงสร้างPRINTDLGบ่งชี้จำนวนของสำเนาที่ผู้ใช้ต้องการพิมพ์ และตั้งค่าสถานะ PD_COLLATE ในสถานะสมาชิกบ่งชี้ว่า ผู้ใช้ต้องการเปรียบเทียบ. คำนึงถึงว่าธงนี้มีการตั้งค่า แอปพลิเคชันสามารถตรวจสอบจากnCopiesและ PD_COLLATE จำนวนสำเนาเพื่อแสดง และเรียงหน้าว่าจะพิมพ์เหล่านั้นหรือไม่. ถ้ามีกำหนดสถานะนี้ และไม่สนับสนุนโปรแกรมควบคุมเครื่องพิมพ์หลายสำเนา ตัวควบคุมการแก้ไขสำเนาถูกปิดใช้งาน ในทำนองเดียวกัน ถ้าธงนี้มีการตั้งค่า และโปรแกรมควบคุมเครื่องพิมพ์ไม่สนับสนุนการเปรียบเทียบ กล่องกาเครื่องหมายทีถูกปิดใช้งาน. สมาชิกของdmCopiesและdmCollate โครงสร้างข้อมูล DEVMODEมีสำเนา และตรวจเทียบข้อมูลที่ใช้ โดยโปรแกรมควบคุมเครื่องพิมพ์ ถ้าธงนี้มีการตั้งค่า และโปรแกรมควบคุมเครื่องพิมพ์ที่สนับสนุนหลายสำเนา สมาชิกdmCopiesบ่งชี้ว่า จำนวนของสำเนาที่ร้องขอ โดยผู้ใช้ ถ้าธงนี้มีการตั้งค่า และโปรแกรมควบคุมเครื่องพิมพ์รองรับการเปรียบเทียบ สมาชิกdmCollateของโครงสร้างข้อมูล DEVMODEบ่งชี้ว่า ผู้ใช้ต้องการเปรียบเทียบ ถ้าไม่มีการตั้งค่าสถานะนี้ สมาชิกdmCopiesจะส่งกลับค่า 1 และสมาชิกdmCollateจะเป็นศูนย์เสมอ. |
|
เมื่อมีการส่งกลับค่าPrintDlg , nFromPageเป็นหน้าเริ่มต้นที่ระบุ โดยผู้ใช้ ถ้ามีเลือกปุ่มวิทยุเพเมื่อผู้ใช้คลิกที่ปุ่มถูก PrintDlgชุด PD_PAGENUMS ตั้งค่าสถานะ และไม่คืนจนถึงผู้ใช้ป้อนค่าหน้าเริ่มต้นที่อยู่ภายในช่วงของหน้าสูงสุดต่ำสุด.
Windows 95: ถ้าค่าสำหรับnFromPageหรือnToPageสำหรับการป้อนค่าอยู่นอกช่วงที่ระบุ โดยnMinPageและnMaxPage, PrintDlgส่งกลับข้อผิดพลาด.
Windows NT: ถ้าค่าป้อนเข้าสำหรับnFromPageหรือnToPageเป็นภายนอกช่วงต่ำสุด/สูงPrintDlgส่งกลับข้อผิดพลาดเฉพาะถ้ามีระบุค่าสถานะ PD_PAGENUMS มิฉะนั้น จะแสดงกล่องโต้ตอบ แต่เปลี่ยนค่านอกช่วงค่าต่ำสุด หรือสูงสุด.
เมื่อมีการส่งกลับค่าPrintDlg , nToPageเป็นหน้าที่สิ้นสุดที่ระบุ โดยผู้ใช้ ถ้ามีเลือกปุ่มวิทยุหน้าเมื่อใช้คลิกที่ปุ่มถูก PrintDlgชุด PD_PAGENUMS ตั้งค่าสถานะ และไม่คืนจนถึงผู้ใช้ป้อนค่าหน้าสิ้นสุดที่อยู่ภายในช่วงของหน้าสูงสุดต่ำสุด.
เมื่อคุณเรียกฟังก์ชันPrintDlgต้องแน่ใจว่าที่สมาชิกที่wDeviceOffsetของโครงสร้างDEVNAMESไม่เหมือนกับสมาชิกdmDeviceNameของการ โครงสร้างข้อมูล DEVMODE ถ้าสมาชิกเหล่านี้ไม่ได้ระบุเครื่องพิมพ์เดียวกันPrintDlgเริ่มต้นกล่องโต้ตอบการใช้เครื่องพิมพ์ที่ระบุ โดยสมาชิกwDeviceOffset.
โดยทั่วไป ถ้าทั้งhDevModeและhDevNamesเป็น NULL, PrintDlgเริ่มต้นกล่องโต้ตอบการใช้เครื่องพิมพ์เริ่มต้นปัจจุบัน อย่างไรก็ตาม ถ้าถูกตั้งค่าสถานะ PD_RETURNDEFAULT และทั้งhDevModeและhDevNamesเป็น NULL, PrintDlgใช้สมาชิกhDevNamesและhDevModeเพื่อส่งกลับข้อมูลเกี่ยวกับเครื่องพิมพ์เริ่มต้นปัจจุบัน โดยไม่มีการแสดงกล่องโต้ตอบการ.
nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ต้องการเวอร์ชัน 1.0 หรือรุ่นใหม่กว่า
หัวข้อ:ประกาศใน winspool.h
Unicode:กำหนดเป็นโครงสร้างแบบ Unicode และ ANSI.
ภาพรวมไลบรารีของกล่องโต้ตอบทั่วไปโครงสร้างกล่องโต้ตอบทั่วไป CreateDC, CreateIC, PrintDlg, DEVMODE, DEVNAMES, WM_INITDIALOG