[นี่คือเอกสารเบื้องต้นและเรื่องการเปลี่ยนแปลง]
ฟังก์ชันPrintDlgExเรียกเมธอดHandleMessageเพื่อให้โปรแกรมประยุกต์ของคุณมีโอกาสในการจัดการกับข้อความที่ส่งไปยังเด็กกล่องโต้ตอบในส่วนล่างของหน้าทั่วไปของแผ่นคุณสมบัติการพิมพ์ กล่องโต้ตอบของเด็กประกอบด้วยตัวควบคุมที่ใกล้เคียงกับของกล่องโต้ตอบการพิมพ์.
(Hresult ใน HandleMessage HWNDhDlg,UINTuMsg,WPARAMwParam,LPARAMlParam,LRESULT* pResult);
ถ้าพารามิเตอร์uMsgบ่งชี้ความWM_INITDIALOG , lParamเป็นตัวชี้การประกอบด้วยPRINTDLGEXโครงสร้างที่ค่าที่ระบุเมื่อสร้างแผ่นคุณสมบัติ.
กลับ S_OK ถ้าใช้งานHandleMessageของคุณจัดการกับข้อความ ในกรณีนี้ ฟังก์ชันPrintDlgExไม่ได้เรื่องการจัดการข้อความเริ่มต้นใด ๆ.
กลับ S_FALSE ถ้าคุณต้องการให้PrintDlgExการดำเนินการจัดการข้อความของค่าเริ่มต้น.
สำหรับข้อความแจ้งเตือนที่ส่งผ่านโดยการ WM_NOTIFYข้อความ คุณต้องใช้ฟังก์ชันSetWindowLongจะ มีค่า DWL_MSGRESULT เพื่อตั้งค่าให้ส่งคืน ใช้เมื่อคุณเรียกใช้SetWindowLong, GetParent (hDlg)การตั้งค่าหน้ากระดาษทั่วไปDWL_MSGRESULT ซึ่งเป็นแม่ของหน้าต่างลูก.
ขั้นตอนกล่องโต้ตอบเริ่มต้นสำหรับหน้าต่างย่อยในส่วนล่างของหน้าทั่วไปประมวลผลข้อความWM_INITDIALOGก่อนที่จะผ่านการเมธอดHandleMessage อื่น ๆ ความส่งไปหน้าต่างลูกHandleMessageรับข้อความก่อน แล้วHandleMessageคืนค่ากำหนดว่า กระบวนการโต้ตอบการเริ่มต้นการประมวลผลข้อความ หรือละเว้นได้.
ถ้าHandleMessageเป็นการประมวลผลข้อความWM_CTLCOLORDLGมันต้องส่งกลับหมายเลขอ้างอิงของแปรงที่ถูกต้องสำหรับการวาดภาพเป็นพื้นหลังของกล่องโต้ตอบ ทั่วไป ถ้าHandleMessageเป็นการประมวลผลข้อใด ๆ WM_CTLCOLOR ความ จะต้องส่งกลับหมายเลขอ้างอิงของแปรงที่ถูกต้องสำหรับการวาดภาพเป็นพื้นหลังของตัวควบคุมที่ระบุ.
เรียกใช้ฟังก์ชันEndDialogจากเมธอดHandleMessage แทนHandleMessageสามารถเรียกใช้ฟังก์ชันPostMessageเพื่อลงรายการบัญชีข้อความWM_COMMANDที่ มีค่า IDABORT ในกระบวนการกล่องโต้ตอบ IDABORT การลงรายการบัญชีปิดแผ่นคุณสมบัติพิมพ์และทำให้PrintDlgExไปกลับ PD_RESULT_CANCEL ในสมาชิกdwResultActionของโครงสร้างPRINTDLGEX ถ้าคุณจำเป็นต้องรู้ว่าทำไมHandleMessageปิดกล่องโต้ตอบ คุณต้องมีกลไกของการสื่อสารระหว่างวิธีการHandleMessageและโปรแกรมประยุกต์ของคุณ.
นอกจากนี้คุณยังระดับชั้นย่อยในการควบคุมมาตรฐานของกล่องโต้ตอบเด็กกล่องในส่วนล่างของหน้าทั่วไป ตัวควบคุมมาตรฐานเหล่านี้จะคล้ายกับที่พบในกล่องโต้ตอบการพิมพ์ อย่างไรก็ตาม ขั้นตอนเริ่มต้นกล่องโต้ตอบอาจยังซับคลาสตัวควบคุม เนื่องจากการนี้ คุณควรควบคุมระดับชั้นย่อยเมื่อHandleMessageการประมวลผลข้อความWM_INITDIALOG นี้ยืนยันว่า กระบวนงานระดับชั้นย่อยของคุณได้รับเฉพาะตัวควบคุมข้อความก่อนขั้นตอนระดับชั้นย่อยกำหนด โดยขั้นตอนในกล่องโต้ตอบ.
nbsp Windows &NT:ต้องการรุ่น 5.0 หรือรุ่นที่ใหม่กว่า
Windows:ไม่สนับสนุน
Windows CE:ไม่สนับสนุน
หัวข้อ:ประกาศใน commdlg.h.
ภาพรวมไลบรารีของกล่องโต้ตอบทั่วไป IPrintDialogCallback, EndDialog, PostMessage, PrintDlgEx, PRINTDLGEX, SetWindowLong, WM_COMMAND, WM_CTLCOLORDLG, WM_INITDIALOG, WM_NOTIFY