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);


发布评论