- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈在MFC中实现打印功能的方法
V01.22
第22卷第4期 忻州师范学院学报 No.4
2006年8月 JOURNALOFXINZHOUTEACHERSUNIVERSITY Aug.2006
浅谈在MFC中实现打印功能的方法
邸未冬
(忻州师范学院,山西忻州034000)
摘要:在MFC编程中,虽然系统对用向导生成的文档视图程序提供了打印功能,但如果
对自动生成的框架程序不做任何改进,打印出来的文档或图形跟屏幕上的显示就不成比例,而
对在基于对话框的应用程序中如何实现打印功能也没有太多的介绍。文章对MFC的打印机
制进行了深入的分析,介绍了在文档视图框架下以及在对话框的应用程序中实现打印功能的
方法。
关键词:文档视图;MFC;对话框;打印;打印预览
中图分类号:,IP39l文献标识码:A
从屏幕显示到打印机输出,VC采用缺省的坐标映射方
利用MFC在Windows平台上进行软件开发已成为程序
设计的主流,在实际工作中经常涉及到对文档和图形的打 式MM_TEXT,这种方式的好处是用户图形坐标和设备的象
印,而系统提供的默认打印方式根本满足不了用户对打印效 素完全一致。但是在屏幕的象素大小为800卑600时,每逻
果的需求,如由于打印机和显示屏上的窗口的工作原理不同 辑英寸包含的屏幕象素为96,而打印机的点数却要多好几
LaserJet
而导致的显示和打印之间比例的失调;用户如何按照自己的 倍,如当打印机为HP 6L时每逻辑英寸包含的打印
要求进行打印;如何在对话框应用程序框架下实现打印功能 机点数为600,也就是说打印机的清晰度比屏幕要高得多,
等,这些问题经常困扰着MFC编程者。本文就主要针对这 这时输出到打印机的图像就会特别小。
些问题提出了一些解决方法,希望能对读者有一定的帮助。 二、在文档视图框架下实现打印功能
一、MFC中的打印机制 在文档/视图结构中,MFC的打印功能由视图类的0n-
MFC应用程序的核心是文档对象以及相关的视图窗口
的概念,即CDocument类和CView类的构成和关系,简单地Draw()进行打印,即“所见即所得”式的打印输出,在这种
说CD0cumem类负责数据的生成和储存,CView类负责数据方式下,视图类的OaDraw()函数的输出为显示和打印共用。
的显示和用户交互。输出到屏幕和输出到打印机都是数据 但是由于打印机和显示屏上的窗口的工作原理完全不同,各
的显示,实质上是一样的,所以打印功能也是由CView类来种参数之间存在很大差异,所以打印输出和屏幕显示的比例
实现的。 相差很大,打印输出的质量也不高。如果要打印出自己想要
在CView类中由应用程序向导自动生成的源代码提供的格式,就需要自己编写独立的打印程序,下面就如何编写
了一个OnDraw(CDC枣pDC)的函数,通过重载这个函数,利打印程序做一说明:
用它提供的pDC(设备上下文)指针,可以在屏幕上显示各
种图形和数据。CView类的打印是通过OnPrint(CDC木式(选择一种适合打印机输出的模式)。该函数原型为virtu-
alvoid
pDC,CPfintInfo+pinto)这个函数实现的,应用程序向导自
动生成的源代码中没有这个函数的框架,而这个函数对打印
的实现就是简单地调用OnDraw(CDC枣pDC)这个函数,把
打印机的设备上下文指针pDC传递给OnDraw(CDC$(MM—TwIPS)设置映射模式。
pD
文档评论(0)