本主题描述显示“打印”对话框的示例代码,以便用户可以选择打印文档的选项。示例代码首先初始化PRINTDLG结构,然后调用PrintDlg函数显示对话框。
此示例将在PRINTDLG结构的旗成员中设置PD_RETURNDC标志。这导致PrintDlg在hDC成员中返回所选打印机的设备上下文句柄。您可以使用句柄在打印机上显示输出。
在输入时,示例代码将hDevMode和hDevNames成员设置为NULL。如果函数返回TRUE,这些成员将返回包含用户输入的DEVMODE和DEVNAMES结构的句柄和有关打印机的信息。您可以使用此信息来准备要发送到所选打印机的输出。
PRINTDLG pd;
HWND hwnd;
//初始化PRINTDLGen
ZeroMemory(&pd, sizeof(PRINTDLG));
pd.lStructSize = sizeof(PRINTDLG);
pd.hwndOwner = hwnd;
pd.hDevMode = NULL; //不要忘记释放或存储hDevMode。
pd.hDevNames = NULL; //不要忘记释放或存储hDevNames。
pd.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC;
pd.nCopies = 1;
pd.nFromPage = 0xFFFF;
pd.nToPage = 0xFFFF;
pd.nMinPage = 1;
pd.nMaxPage = 0xFFFF;
if (PrintDlg(&pd)==TRUE) {
// GDI调用来渲染输出。
//完成后删除DC。
DeleteDC(pd.hDC);
}