怎样用CPrintDialog来实现打印功能
【打印文章】
把以下程序段加入你的程序
把dc1当作Device Content.
就任你打印了.注意别画错地方.
自己换页.
更绝的是可调用窗口的OnPrint或OnDraw成员函数直接打印.不用你去做行距多少啦!
但别忘换页.
// 打印
// 建立打印对话框对象
CPrintDialog
d1(FALSE,PD_ALLPAGES|PD_ALLPAGES|PD_NOPAGENUMS,NULL);
HDC dc1;
if(d1.DoModal()==IDOK){
// 返回一个打印DC句柄
dc1=d1.GetPrinterDC();
// 启动打印工作
StartDoc(dc1,&docin);
// 一页开始
StartPage(dc1);
dc1.textout(.....)
dc1.draw(....)
....
// 一页结束
EndPage(dc1);
可以有多个StartPage(dc1)
...
EndPage(dc1)
// 终止打印工作
EndDoc(dc1);
// 删除句柄
if(DeleteDC(dc1)){
return TRUE;
}else{
出错信息
EndDoc(dc1);
// 删除句柄
if(DeleteDC(dc1)){
return TRUE;
}else{
出错信息
}
}
把dc1当作Device Content.
就任你打印了.注意别画错地方.
自己换页.
更绝的是可调用窗口的OnPrint或OnDraw成员函数直接打印.不用你去做行距多少啦!
但别忘换页.
// 打印
// 建立打印对话框对象
CPrintDialog
d1(FALSE,PD_ALLPAGES|PD_ALLPAGES|PD_NOPAGENUMS,NULL);
HDC dc1;
if(d1.DoModal()==IDOK){
// 返回一个打印DC句柄
dc1=d1.GetPrinterDC();
// 启动打印工作
StartDoc(dc1,&docin);
// 一页开始
StartPage(dc1);
dc1.textout(.....)
dc1.draw(....)
....
// 一页结束
EndPage(dc1);
可以有多个StartPage(dc1)
...
EndPage(dc1)
// 终止打印工作
EndDoc(dc1);
// 删除句柄
if(DeleteDC(dc1)){
return TRUE;
}else{
出错信息
EndDoc(dc1);
// 删除句柄
if(DeleteDC(dc1)){
return TRUE;
}else{
出错信息
}
}
本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )
【编程爱好者论坛】