Customizing the Print Dialog Box
You can provide a custom template for the Print dialog box, for example, if you want to include additional controls that are unique to your application. The PrintDlg function uses your custom template in place of the default template.
To provide a custom template for the Print dialog box
-
Create the custom template by modifying the default template specified in the PRNSETUP.DLG file. The control identifiers used in the default Print dialog template are defined in the DLGS.H file.
-
Use the PRINTDLG structure to enable the template as follows:
-
If your custom template is a resource in an application or dynamic-link library, set the PD_ENABLEPRINTTEMPLATE flag in the Flags member. Use the hInstance and lpPrintTemplateName members of the structure to identify the module and resource name.
-Or-
-
If your custom template is already in memory, set the PD_ENABLEPRINTTEMPLATEHANDLE flag. Use the hPrintTemplate member to identify the memory object that contains the template.
You can provide a PrintHookProc hook procedure for the Print dialog box. The hook procedure can process messages sent to the dialog box. It can also send messages to the dialog box. If you use a custom template to define additional controls, you must provide a hook procedure to process input for your controls.
To enable a hook procedure for the Print dialog box
-
Set the PD_ENABLEPRINTHOOK flag in the Flags member of the PRINTDLG structure.
-
Specify the address of the hook procedure in the lpfnPrintHook member.
After processing its WM_INITDIALOG message, the dialog box procedure sends a WM_INITDIALOG message to the hook procedure. The lParam parameter of this message is a pointer to the PRINTDLG structure used to initialize the dialog box.