打印的第一步包括设置打印机并获取打印机DC。在示例应用程序中,“文件”菜单包含两个选项:打印和打印设置。通过选择任一选项,用户可以配置打印机。当用户选择“打印设置”选项时,将显示“打印设置”对话框,用户可以选择打印机,页面方向,纸张尺寸等。当用户选择“打印”选项时,将显示“打印”对话框,用户可以选择一系列页面,打印质量,多份副本等。用户还可以通过单击设置按钮显示“打印设置”对话框。
打印和打印设置对话框将通过初始化PRINTDLG结构的成员并调用PrintDlg功能来显示。(有关显示打印设置对话框的详细信息,请参阅通用对话框库)。除了检索用户指定的数据,PrintDlg可以通过在PRINTDLG结构的旗成员中指定PD_RETURNDC值来获取打印机DC。以下代码示例显示如何初始化结构的成员并显示“打印”对话框。
/ *初始化PRINTDLG成员。*/
pd.lStructSize = sizeof(PRINTDLG);
pd.hDevMode = (HANDLE) NULL;
pd.hDevNames = (HANDLE) NULL;
pd.Flags = PD_RETURNDC;
pd.hwndOwner = hwnd;
pd.hDC = (HDC) NULL;
pd.nFromPage = 1;
pd.nToPage = 1;
pd.nMinPage = 0;
pd.nMaxPage = 0;
pd.nCopies = 1;
pd.hInstance = (HANDLE) NULL;
pd.lCustData = 0L;
pd.lpfnPrintHook = (LPPRINTHOOKPROC) NULL;
pd.lpfnSetupHook = (LPSETUPHOOKPROC) NULL;
pd.lpPrintTemplateName = (LPSTR) NULL;
pd.lpSetupTemplateName = (LPSTR) NULL;
pd.hPrintTemplate = (HANDLE) NULL;
pd.hSetupTemplate = (HANDLE) NULL;
/ *显示打印对话框。*/
PrintDlg(&pd);