打印与打印预览
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
打印及打印预览实例
1. 创建支持打印、打印预览的应用程序
2.
3. 4.
设置合适的映射模式(显示器与打印机分辨率的差异)
输出多页的文档内容 在OnBeiginPrinting中计算并设置文档的页数,调用GetDeviceCaps获 得打印机设备上下文属性,调用CPrintInfo的SetMaxPage和 SetMinPage设置页码范围 为每一打印页设置合适的视图原点,可用IsPrinting判断是否为打印或 打印预览过程
CDC::StartDoc
CMyView::OnPrepareDC
设置视图原点、映射模式等设备上下文属性; 如果文档长度未知,检测是否已到文档尾部
CDC::StartPage
Hale Waihona Puke Baidu
CMyView::OnPrint
调用OnDraw函数输出屏幕中所显示内容;定制 输出页眉、页脚或其它内容
CDC::EndPage
CDC::EndDoc
CMyView::OnEndPrinting
释放OnBeginPrinting中创建的GDI资源
控制打印过程
1. CPrintInfo类对象贯穿在整个打印过程中,保存打印任务的信息(起 始页、当前页、页码格式等),是应用程序框架与视图类交换打印信 息的重要途径
2.
打印时,应用程序框架调用OnPrparePrinting,调用DoPreparePrinting 以弹出打印对话框,设置CPrintInfo的m_bDirect为TRUE,将不显示打 印对话框,可通过设置CPrintInfo对象的成员变量,设置打印对话框 的初始值,如打印页码范围等 对每一打印页,框架将调用OnPrepareDC,再调用OnPrint
5.
6.
7.
在OnPrint函数中,除了调用OnDraw函数外,调用GDI函数打印标题、 页码等内容
设置CPrintInfo成员变量,改变打印预览中页码的显示方式
• • CPrintInfo的m_nCurPage标识当前所打的页 可在OnPrepareDC中设置合适的映射模式、视图原点
3.
•
4.
设置CPrintInfo的m_bContinuePrinting为FALSE可终止打印
OnPrint输出打印内容,可直接调用OnDraw函数,打印当前显示内容, 也可调用GDI函数输出与显示不同的内容,所需的GDI资源可考虑在 OnBeiginPrinting中创建,在OnPrint中选中并完成输出,在 OnEndPrinting中释放
第11章 打印与打印预览
1. 2.
打印的基础知识 打印的基本流程
3.
4.
控制打印过程
打印及打印预览实例
打印基础知识
1. 生成支持打印的应用程序 • • 2. 向导的第4步不取消打印、打印预览设置 生成的应用程序包含打印、打印预览、打印设置三个菜单,打 印与显示过程都会调用OnDraw函数 显示:WM_PAINT消息→调用消息响应函数OnPaint→调用 OnDraw函数,传递显示设备上下文 打印:选中打印菜单→调用OnPrint→调用OnDraw函数,传递 打印设备上下文 打印预览:选中菜单→调用OnPrint→调用OnDraw函数,传递 CPreviewDC对象
基本机制 • • •
打印的基本流程
被框架所调用的函数 推荐的应重载的功能
CMyView::OnPreparePrinting
设置文档的页数;调用DoPreparePrinting弹出打 印对话框并创建打印设备上下文 如果没有设置文档页数,可以在此处设置;创 建打印过程中使用的GDI对象
CMyView::OnBeginPrinting