怎样用CPrintDialog来实现打印功能
敬业的IT人
互联网
佚名
2008-1-4 18:57:07
把以下程序段加入你的程序
把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{
出错信息
}
}
- 最新文章
- 获得当前进程的列表[01-04]
- Visual C 中的结构异常处理[01-04]
- 小程序显示谁连接到你的计算机[01-04]
- Visual C 多线程DAO处理[01-04]
- 用VC 给Foxbase数据库文件加密[01-04]
- Visual C 实现视频图像处理技术[01-04]
- 相关文章
