|
|
|
vb中实现“所见即所得”功能 |
|
|
| http://www.iyit.net 日期:2005-11-24 17:47:51 来源:易特网络技术 点击: |
windows程序大多数具有“所见即所得”(wysiwyg,what you see is what you get)的功能。“所见即所得”是指软件打印输出效果和屏幕显示效果完全一致。“所见即所得”是windows程序的一个主要优点之一。
本文将介绍如何使用visual basic(以下简称vb)编写具有“所见即所得”功能的windows程序。
一、方法概述 为了在屏幕上模拟打印效果,我们使用vb的一个窗体来模拟一张打印纸。在vb中,每一个窗体都有一个printform方法。使用printform方法可以把一个窗体的内容完全一样地通过打印机打印出来。由于printform方法在打印窗体内容的时候,对于窗体内的文字和图形都是同样地打印。所以通过简单的编程,使用printform方法可以非常方便地实现图文混合打印。
①确定用户可以使用的显示与打印双功能字模
“所见即所得”程序中用户可以使用的字模必须是同时支持windows的显示设备和打印设备的双功能字模。只有这些字模才可以在屏幕和打印机上产生一样的效果。因此,程序必须首先获得这些显示与打印双功能字模的名称。
②在屏幕上设置“纸张”窗体的大小
通过读取windows打印管理器纸张尺寸的设置,在vb里建立一个与打印纸具有同样尺寸比例关系的窗体,作为屏幕上模拟打印效果的“纸张”,让用户在屏幕上就可以看到文字和图形在打印纸上的位置分布。
③用户在屏幕“纸张”上模拟打印效果
在模拟打印的窗体中通过使用print、line、circle等方法绘制文字和图形的,还可以使用图形框、graph.vbx、ole等控件绘制图形、统计图表、公式、艺术字型等。
④将屏幕“纸张”的内容输出到打印机
使用窗体的printform方法把第③步所绘制的文字和图形输出到打印机,得到和屏幕显示一模一样的打印拷贝,实现“所见即所得”。
二、打印机字模和显示器字模的精确匹配 windows的字模分为两类:打印机字模和显示器字模。各种truetype字模(如宋体、黑体字模)都是显示与打印双功能字模。其他的非truetype字模就只能用于显示或打印。
如果在模拟打印窗体的文字输出中使用了只能用于显示的字模,那么当printform方法执行的时候,windows就只能在打印字模中查找一个尽量和这个显示字模字型匹配的字模来进行打印。这样将导致得到的打印拷贝与屏幕显示不一致。
为了使程序获得“所见即所得”的能力,必须在窗体输出中使用显示与打印双功能字模。因此,程序获得“所见即所得”能力的一个关键是:确保在屏幕输出中只使用显示与打印双功能字模。
在vb中提供了两个全局对象:屏幕对象screen和打印机对象printer。两个对象都提供了fontcount属性和fonts属性。fontcount属性提供了可使用字模的数量,而fonts属性提供了可使用字模的名称。在程序中,我们可以取出screen对象和printer对象所共同拥有的字模,这些字模就是所有的显示与打印双功能字模。
具体的程序如下:
首先设置一个列表框,取名list1,然后调用下面的getfont函数,在list1中就存放所有显示与打印双功能字模的名称。
sub getfont() for i=0 to screen.fontcount-1 for j=0 to printer.fontcount-1 if screen.fonts(i)=printer.fonts(j) then list1.add1tem (sereen.fonts(i)) end if next j next i end sub 本新闻共2页,当前在第1页 1 2
|
上一篇:java基础之关键字
下一篇:如何在网页中调试javascript
[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net |
|
| 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 责任编辑: |
投稿作者: 易特网络技术 |
| 信息来源: 易特网络技术 |
录入时间: 2005-11-24 17:47:51 |
| 浏览次数: |
投稿信箱: shtghy@163.com |
|
|
|
|
|