Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 22:39:38
visual c++中打印基础

visual c++中打印基础

打印基础

打印是信息管理系统中必不可少的一个功能。这个过程简单分为两部分:一部分包括要打印的内容;另一部分处理与打印机的连接,进行数据传送。由于打印过程的不可逆,为了确保打印出的效果符合用户的需要,经常需要提供第三部分——打印预览。打印预览既反映了打印的内容,也从一定程度上反映了打印机的一些属性设定,如纸张的大小等。这三部分分别称为打印绘图、打印预览、打印。

打印以及相关的功能,这一部分往往不需要担心。由于这部分涉及到外设的访问,在目前大多数软件包中都被封装好了,只需要调用相应的模块即可。

打印绘图是问题中要解决的内容。针对不同的问题,可能要打印不同的内容,字体、背景、颜色、样式等都将可能成为要解决的内容。它涉及到绘图的知识,要解决的是向一张打印纸上画什么的问题。虽然是问题域的内容,但仍然能从中找出可重用的模块。例如:信封、表格、固定格式的票据、条形码等,这将很方便地被以后的程序所使用。

打印预览是提供给用户的界面。它的绘图数据来源是真实的数据,绘图的操作也可能就是打印绘图的操作(所见即所得)。要用这个界面完成对打印纸的模拟,使用户能直观的感觉到自己要打印的内容是否正确。随着用户对界面的要求越来越高,该部分就变得越来越重要。不仅如此,该部分对程序员很重要,开发一个界面友好、功能强大的打印预览界面并不是容易的事情,更重要的是要让该模块具有可重用性。

抛开我们面临的问题不谈,先来看看MFC准备了什么。

MFC有用于打印预览的设备环境类CPreviewDC和预览视图类CPreviewView,并且MFC在Document/View模式下提供了方便的打印方式,当使用向导生成一个单文档的应用程序,就可以使用现成的打印预览和打印功能,虽然什么都没有做,什么也没有画。

不过,存在这样一个问题,由于现在制作的应用程序都是基于对话框的,如何在基于对话框的程序中应用Document/View的框架?

实际上,在Dialog中应用Document/View有很多种方法。作者是用这样的方法实现的。

(1)打开Visual C++ 6.0,执行“File”“New”菜单命令,在弹出的“New”对话框中选择“Projects”选项卡,在列表中选择“MFC AppWizard(EXE)”列表项,在“Project Name”文本框中填入适当项目名称,单击“OK”按钮,进入“MFC AppWizard-Step1”对话框。

(2)在“MFC AppWizard- Step 1”对话框中选择“Single document”单选框,单击“Next”按钮,进入“MFC AppWizard- Step 2 of 6”对话框。

(3)继续单击“Next”按钮,直到打开“MFC AppWizard- Step 4 of 6”对话框为止。

(4)在“MFC AppWizard- Step 4 of 6”对话框中,将“Initial status bar”复选框前的对号去掉,这样,生成的应用程序没有状态栏了。继续单击“Next”按钮,进入“MFC AppWizard- Step 5 of 6”对话框。

(5)在“MFC AppWizard- Step 5 of 6”对话框中不需要做任何修改,单击“Next”按钮,进入“MFC AppWizard- Step 6 of 6”对话框。

(6)在“MFC AppWizard- Step 6 of 6”对话框中,选择列表框中的“CMyView”列表项,此时,在列表框下方的“Class name”、“Hearder File”等文本框或组合框都是可以编辑的,将“Base Class”组合框的值改为“CSCrollView”,这样,从CSCrollView派生来的CmyView就具有滚动条了。

(7)单击“Finish”按钮,完成单文档应用程序的创建工作,如图1所示。



图1 用AppWizard创建的单文档窗体

(8)虽然一句代码没写,但已经可以运行了,不过,这个界面与需要的界面相比似乎差远了点,还需要做一些修改。

修改IDR_MAINFRAME菜单资源,效果如图2所示。



图2 菜单资源

修改ToolBar资源,效果如图3所示。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759