2024年3月21日发(作者:)

通过MFC来完成打印作业有很多的方法,应用场合也有所不同。我们通常是利用视

图框架在MFC基础之上按照OnPreparePrinting() à OnBeginPrinting() ? à

OnPreprareDC() à OnPrinting () à OnEndPrinting()的顺序来编程的。对于我们使用单

文档或者多文档的视图框架时这无疑是一种很好的方式。但是,在基于对话框的应用程序

中,或者在很多打印要求不高的情况下(如只是简单的打印中间计算结果、报告程序异常

等),我们就没有必要再绕上面的那么一个大弯子,可以直接利用MFC封装的打印对话框

CPrintDialog来执行简单的打印任务。当然,如果你不怕烦,这种方式也可以执行很复杂

的打印作业。

下面做一个简单的例子程序。利用Visual C++ 6.0 的AppWizard生成一个对话框应

用程序框架。然后,利用资源编辑器添加一个Edit控件,属性设置为:选择Multiline、

Want Return ,根据你的兴趣选择滚动条有关的项,绑定成员变量m_strPrintString。使

“确定(OK)”按钮不接受程序的“Enter”键消息,Caption改为“打印(Print)”。

此键按下的处理函数如下:

if (!UpdateData(TRUE))

{

AfxMessageBox("数据交换有误!");

}

if (m_strPrintString==_T(""))

{

AfxMessageBox("请输入需要打印的文字?quot;);

return;

}

CPrintDialog dlg(FALSE,

PD_NOPAGENUMS|PD_NOSELECTION,

this);

if(l() == IDOK)

{

CDC dc;

(nterDC());//把打印设备环境附加到DC对象

DOCINFO di;

= sizeof(DOCINFO);