第 11章 打印与打印预览
1,打印的基础知识
2,打印的基本流程
3,控制打印过程
4,打印及打印预览实例打印基础知识
1,生成支持打印的应用程序
向导的第 4步不取消打印、打印预览设置
生成的应用程序包含打印、打印预览、打印设置三个菜单,打印与显示过程都会调用 OnDraw函数
2,基本机制
显示,WM_PAINT消息 → 调用消息响应函数 OnPaint→ 调用
OnDraw函数,传递显示设备上下文
打印:选中打印菜单 → 调用 OnPrint→ 调用 OnDraw函数,传递打印设备上下文
打印预览:选中菜单 → 调用 OnPrint→ 调用 OnDraw函数,传递
CPreviewDC对象打印的基本流程被框架所调用的函数
CMyView::OnPreparePrinting
推荐的应重载的功能设置文档的页数;调用 DoPreparePrinting弹出打印对话框并创建打印设备上下文
CMyView::OnBeginPrinting 如果没有设置文档页数,可以在此处设置;创建打印过程中使用的 GDI对象
CDC::StartDoc
CMyView::OnPrepareDC
CDC::StartPage
CMyView::OnPrint
CDC::EndPage
CDC::EndDoc
CMyView::OnEndPrinting
设置视图原点,映射模式等设备上下文属性;
如果文档长度未知,检测是否已到文档尾部调用 OnDraw函数输出屏幕中所显示内容;定制输出页眉,页脚或其它内容释放 OnBeginPrinting中创建的 GDI资源控制打印过程
1,CPrintInfo类对象贯穿在整个打印过程中,保存打印任务的信息(起始页、当前页、页码格式等),是应用程序框架与视图类交换打印信息的重要途径
2,打印时,应用程序框架调用 OnPrparePrinting,调用 DoPreparePrinting
以弹出打印对话框,设置 CPrintInfo的 m_bDirect为 TRUE,将不显示打印对话框,可通过设置 CPrintInfo对象的成员变量,设置打印对话框的初始值,如打印页码范围等
3,对每一打印页,框架将调用 OnPrepareDC,再调用 OnPrint
CPrintInfo的 m_nCurPage标识当前所打的页
可在 OnPrepareDC中设置合适的映射模式、视图原点
设置 CPrintInfo的 m_bContinuePrinting为 FALSE可终止打印
4,OnPrint输出打印内容,可直接调用 OnDraw函数,打印当前显示内容,
也可调用 GDI函数输出与显示不同的内容,所需的 GDI资源可考虑在
OnBeiginPrinting中创建,在 OnPrint中选中并完成输出,在
OnEndPrinting中释放
1,创建支持打印、打印预览的应用程序
2,设置合适的映射模式(显示器与打印机分辨率的差异)
3,输出多页的文档内容
4,在 OnBeiginPrinting中计算并设置文档的页数,调用 GetDeviceCaps获得打印机设备上下文属性,调用 CPrintInfo的 SetMaxPage和
SetMinPage设置页码范围
5,为每一打印页设置合适的视图原点,可用 IsPrinting判断是否为打印或打印预览过程
6,在 OnPrint函数中,除了调用 OnDraw函数外,调用 GDI函数打印标题、
页码等内容
7,设置 CPrintInfo成员变量,改变打印预览中页码的显示方式打印及打印预览实例
1,打印的基础知识
2,打印的基本流程
3,控制打印过程
4,打印及打印预览实例打印基础知识
1,生成支持打印的应用程序
向导的第 4步不取消打印、打印预览设置
生成的应用程序包含打印、打印预览、打印设置三个菜单,打印与显示过程都会调用 OnDraw函数
2,基本机制
显示,WM_PAINT消息 → 调用消息响应函数 OnPaint→ 调用
OnDraw函数,传递显示设备上下文
打印:选中打印菜单 → 调用 OnPrint→ 调用 OnDraw函数,传递打印设备上下文
打印预览:选中菜单 → 调用 OnPrint→ 调用 OnDraw函数,传递
CPreviewDC对象打印的基本流程被框架所调用的函数
CMyView::OnPreparePrinting
推荐的应重载的功能设置文档的页数;调用 DoPreparePrinting弹出打印对话框并创建打印设备上下文
CMyView::OnBeginPrinting 如果没有设置文档页数,可以在此处设置;创建打印过程中使用的 GDI对象
CDC::StartDoc
CMyView::OnPrepareDC
CDC::StartPage
CMyView::OnPrint
CDC::EndPage
CDC::EndDoc
CMyView::OnEndPrinting
设置视图原点,映射模式等设备上下文属性;
如果文档长度未知,检测是否已到文档尾部调用 OnDraw函数输出屏幕中所显示内容;定制输出页眉,页脚或其它内容释放 OnBeginPrinting中创建的 GDI资源控制打印过程
1,CPrintInfo类对象贯穿在整个打印过程中,保存打印任务的信息(起始页、当前页、页码格式等),是应用程序框架与视图类交换打印信息的重要途径
2,打印时,应用程序框架调用 OnPrparePrinting,调用 DoPreparePrinting
以弹出打印对话框,设置 CPrintInfo的 m_bDirect为 TRUE,将不显示打印对话框,可通过设置 CPrintInfo对象的成员变量,设置打印对话框的初始值,如打印页码范围等
3,对每一打印页,框架将调用 OnPrepareDC,再调用 OnPrint
CPrintInfo的 m_nCurPage标识当前所打的页
可在 OnPrepareDC中设置合适的映射模式、视图原点
设置 CPrintInfo的 m_bContinuePrinting为 FALSE可终止打印
4,OnPrint输出打印内容,可直接调用 OnDraw函数,打印当前显示内容,
也可调用 GDI函数输出与显示不同的内容,所需的 GDI资源可考虑在
OnBeiginPrinting中创建,在 OnPrint中选中并完成输出,在
OnEndPrinting中释放
1,创建支持打印、打印预览的应用程序
2,设置合适的映射模式(显示器与打印机分辨率的差异)
3,输出多页的文档内容
4,在 OnBeiginPrinting中计算并设置文档的页数,调用 GetDeviceCaps获得打印机设备上下文属性,调用 CPrintInfo的 SetMaxPage和
SetMinPage设置页码范围
5,为每一打印页设置合适的视图原点,可用 IsPrinting判断是否为打印或打印预览过程
6,在 OnPrint函数中,除了调用 OnDraw函数外,调用 GDI函数打印标题、
页码等内容
7,设置 CPrintInfo成员变量,改变打印预览中页码的显示方式打印及打印预览实例