设计“图书管理”程序(打印功能).ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计“图书管理”程序(打印功能)

9.4.1 实例小结 主要介绍了MFC提供的对打印和打印预览的支持,以及实现打印的整个过程。最后,使用MFC的打印和打印预览机制,为第8章的“图书管理”程序实现打印和打印预览功能。 在为“图书管理”程序实现打印功能时,仅仅能够打印图书查询的列表数据,而并未为其他查询方式实现打印功能,如借书查询、读者查询。然而,这部分的实现过程与打印图书列表的过程类似。 在实现打印过程中,根据查询列表的字段绘制相应的列和单元格,并需要逐步调节每个字段的宽度。在程序中并未设置任何映射模式,默认情况下为MM_TEXT映射模式,即所有的宽度都以像素为单位。 ? 9.1 9.2 9.3 9.4 实现功能及设计思路 主要知识点 程序实现过程 实例小结及扩展 9.1.1 功能描述 本章中的“图书管理”程序包含一个“打印”按钮,单击该按钮后将弹出一个菜单以选择“打印预览”和“打印”功能。运行结果如图9.1所示。 在弹出的菜单中选择“打印”菜单命令后,将弹出标准打印对话框,单击对话框中的“确定”按钮后将打印列表控件中的数据,如图9.2所示。 选择菜单中的“打印预览”菜单命令后,将弹出一个如图9.3所示的“打印预览”窗口,单击窗口工具条上的“打印”工具按钮后,将打印对话框中的列表数据。 在程序实现的过程中,需要响应“打印”和“打印预览”菜单命令,并在这些菜单的消息响应函数中创建打印预览框架窗口,然后打印预览框架窗口中的打印预览视图分别发送打印命令和打印预览命令。 在创建打印预览框架窗口时,重载框架窗口的OnCreate函数,并在该函数中创建一个打印预览视图。此时,将应用程序的主窗口指针m_pMainWnd设置成当前的框架窗口指针,以便能够将打印和打印预览消息发送到视图中。 在创建框架窗口和视图后,分别重载视图类的相关打印函数,以及添加打印和打印预览命令的消息响应函数。然而,由于实际需要打印的数据保存在原对话框窗口中,所以在视图类的打印函数中并未进行实际的打印操作,而是向原对话框窗口发送一些自定义消息来通知原对话框。 9.2.1 MFC打印概述 通常,在支持打印和打印预览功能的应用程序中,当选择“文件”→“打印”菜单项后,会弹出如图9.4所示的“打印”对话框,而如果选择“文件”→“打印设置”菜单项,则弹出“打印设置”对话框,如图9.5所示。 单击标准打印对话框中的“确定”按钮后,应用程序将开始打印数据。在打印的过程中,应用程序显示一个标准的打印机状态对话框,如图9.6所示。 MFC中的打印过程是由框架/视图支持的,在视图类CView中定义了默认的打印函数,用户可以重载这些函数以完成打印功能。CView类中的打印函数见表9.1。 打 印 函 数 说 明 OnPreparePrinting 打印准备,设置文档的长度及页数 OnBeginPrinting 开始打印,分配字体或其他GDI资源 OnPrepareDC 设置映射模式 OnPrint 打印每一页 OnEndPrinting 结束打印,释放GDI资源 OnEndPreparePreview 退出打印预览 打印结束后,应用程序框架调用OnEndPrinting函数释放GDI资源及完成其他清理工作。然而,如果是打印预览,那么在调用OnEndPrinting之前会先调用OnEndPreparePreview函数。具体的调用过程如图9.7所示。 CPrintInfo类保存了所有打印和打印预览的全部信息。该类中存储有关一次打印或打印预览作业的信息,如打印的当前页、打印的当前状态等。当每次选择“打印”或“打印预览”菜单命令后,框架就创建一个CPrintInfo对象,并在打印完成后删除该对象。CPrintInfo类中常用成员变量和成员函数见表9.2。 成员变量和成员函数 说 明 BOOL m_bDirect 如果为TRUE,则直接打印而不显示打印对话框 BOOL m_bPreview 表示文档是否需要预览 BOOL m_bContinuePrinting 表示框架是否需要继续打印 UINT m_nCurPage 表示当前正在打印的页码 UINT m_nNumPreviewPages 表示在预览模式下显示的页数,可以是1或者2 GetMinPage/SetMinPage 取得或设置文档的第一页的页码 GetMaxPage/SetMaxPage 取得或设置文档的最后一页的页码 GetFromPage/GetToPage 取得要打印的第一页和最后一页的页码 在打印预览状态下,OnDraw的参数实际上是一个指向CPreviewDC对象的指针,当选择了MFC创建的应用程序的“文件”菜单中的“打印预览”命令后,应用程序就会创建一个CPreviewDC对象,每当应用程序执行一个设置打印机设备

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档