10.5.6 打印对话框实例
CPrintDialog类封装了Windows提供的通用的打印对话框,使用此对话框可以简单地完成标准的Windows打印和打印设置功能。要使用CPrintDialog对象,首先使用CPrintDialog构造函数创建对象,可以设置或修改m_pd结构的值初始化对话框的值。m_pd结构是一个PRINTDLG结构的成员变量。初始化对话框后,调用DoModal()成员函数显示对话框,并让用户执行打印功能。下面的代码显示了字体对话框的使用。
- void CMyDialog::OnPrintBuf() // 打印缓冲区数据
- {
- char pbuf[100] = "Hello World.";
// 定义信息字符数组 - HDC hdcPrn ;
// 定义设备上下文变量 - CPrintDialog *printDlg =new CPrintDialog(FALSE,
PD_ALLPAGES | PD_RETURNDC,
NULL); // 构造打印对话框 - printDlg->m_pd.nMinPage = printDlg->m_pd.nMaxPage = 1;
- // 设置最大
页和最小页都为1 - printDlg->m_pd.nFromPage = printDlg->m_pd.nToPage = 1;
- // 设置打印第一页
- printDlg->DoModal(); // 显示打印对话框
- hdcPrn = printDlg->GetPrinterDC(); // 获取
使用的打印机句柄 - if (hdcPrn != NULL)
- // 如果选择的打印机
句柄为NULL,则根据需要处理 - {
- }
- delete printDlg; // 删除打印机对话框
- }
上面代码首先定义了CPrintDialog对象,并设置打印对话框的参数,然后调用DoModal()函数。接着调用GetPrinterDC()函数判断使用的打印机,并根据情况执行相应的操作。图10-23显示了调用打印对话框的运行效果图。
|
| 图10-23 打印对话框调用效果图 |