国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
VB中實現(xiàn)“所見即所得”功能
 
作者: 王鋒

來源:www.ccidnet.com

Windows程序大多數(shù)具有“所見即所得”(WYSIWYG,What You See Is What You Get)的功能。“所見即所得”是指軟件打印輸出效果和屏幕顯示效果完全一致。“所見即所得”是Windows程序的一個主要優(yōu)點之一。

本文將介紹如何使用Visual BASIC(以下簡稱VB)編寫具有“所見即所得”功能的Windows程序。

一、方法概述
為了在屏幕上模擬打印效果,我們使用VB的一個窗體來模擬一張打印紙。在VB中,每一個窗體都有一個PrintForm方法。使用PrintForm方法可以把一個窗體的內(nèi)容完全一樣地通過打印機(jī)打印出來。由于PrintForm方法在打印窗體內(nèi)容的時候,對于窗體內(nèi)的文字和圖形都是同樣地打印。所以通過簡單的編程,使用PrintForm方法可以非常方便地實現(xiàn)圖文混合打印。

①確定用戶可以使用的顯示與打印雙功能字模

“所見即所得”程序中用戶可以使用的字模必須是同時支持Windows的顯示設(shè)備和打印設(shè)備的雙功能字模。只有這些字模才可以在屏幕和打印機(jī)上產(chǎn)生一樣的效果。因此,程序必須首先獲得這些顯示與打印雙功能字模的名稱。

②在屏幕上設(shè)置“紙張”窗體的大小

通過讀取Windows打印管理器紙張尺寸的設(shè)置,在VB里建立一個與打印紙具有同樣尺寸比例關(guān)系的窗體,作為屏幕上模擬打印效果的“紙張”,讓用戶在屏幕上就可以看到文字和圖形在打印紙上的位置分布。

③用戶在屏幕“紙張”上模擬打印效果

在模擬打印的窗體中通過使用Print、Line、Circle等方法繪制文字和圖形的,還可以使用圖形框、Graph.VBX、OLE等控件繪制圖形、統(tǒng)計圖表、公式、藝術(shù)字型等。

④將屏幕“紙張”的內(nèi)容輸出到打印機(jī)

使用窗體的PrintForm方法把第③步所繪制的文字和圖形輸出到打印機(jī),得到和屏幕顯示一模一樣的打印拷貝,實現(xiàn)“所見即所得”。

二、打印機(jī)字模和顯示器字模的精確匹配
Windows的字模分為兩類:打印機(jī)字模和顯示器字模。各種TrueType字模(如宋體、黑體字模)都是顯示與打印雙功能字模。其他的非TrueType字模就只能用于顯示或打印。

如果在模擬打印窗體的文字輸出中使用了只能用于顯示的字模,那么當(dāng)PrintForm方法執(zhí)行的時候,Windows就只能在打印字模中查找一個盡量和這個顯示字模字型匹配的字模來進(jìn)行打印。這樣將導(dǎo)致得到的打印拷貝與屏幕顯示不一致。

為了使程序獲得“所見即所得”的能力,必須在窗體輸出中使用顯示與打印雙功能字模。因此,程序獲得“所見即所得”能力的一個關(guān)鍵是:確保在屏幕輸出中只使用顯示與打印雙功能字模。

在VB中提供了兩個全局對象:屏幕對象Screen和打印機(jī)對象Printer。兩個對象都提供了FontCount屬性和Fonts屬性。FontCount屬性提供了可使用字模的數(shù)量,而Fonts屬性提供了可使用字模的名稱。在程序中,我們可以取出Screen對象和Printer對象所共同擁有的字模,這些字模就是所有的顯示與打印雙功能字模。

具體的程序如下:

首先設(shè)置一個列表框,取名List1,然后調(diào)用下面的GetFont函數(shù),在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

三、窗體大小和紙張尺寸的匹配
為了在屏幕上可以清楚地看到文字和圖形在打印紙上的位置和大小關(guān)系,必須使VB顯示窗口的大小比例和打印紙張的大小比例是一致的。打印紙張的大小可以使用Printer對象的Width和Height屬性來獲得。根據(jù)獲得的屬性值可以設(shè)置VB顯示窗體的大小比例,使之合乎紙張的比例大小。

下面的程序中有一個變量Size,其取值的范圍為0-1。它的作用是控制打印圖形的大小。當(dāng)Size的值為1的時候,打印圖形將和Windows設(shè)定的紙張一樣大小。具體程序如下:

Sub Form_Load ()
  Dim SizeAS INTECER
  Size=0.95
  Form1.Height=Printer.Height*Size
  Form1.Wdth=Printer.Width*Size
End Sub

四、模擬打印和打印輸出
下面的一段程序演示了在顯示窗體上模擬打印文字和圖形的方法,以及使用PrintForm把顯示窗體中的文字和圖形輸出到打印機(jī)的方法。

注意的是:為了使用PrintForm方法,必須把顯示窗體的AutoRedraw屬性設(shè)置為True。

由于PrintForm方法打印窗體的內(nèi)容是使用bit-by-bit的拷貝方法,因此在窗體里的所有文字和圖形都可以被原樣打印出來。作為例子,我們可以使用OLE控件來顯示W(wǎng)ord公式編輯器里編輯的公式,使用Picture和Graph控件來顯示圖形和統(tǒng)計圖。然后使用PrintForm方法將它們打印出來。

具體程序如下:

Sub PrintOnScreen ()
Form1.Scale(0,0)-(100,100) ' 設(shè)置坐標(biāo)
Form1.Line(100,0)-(0,100) ' 顯示畫線
Form1.CurrentX=0
Form1.CurrentY=0
Form1.FontName="宋體" ' 輸出文字
Form1.FontSize=20
Form1.Print "模擬打印"
Picture1.Picture=LoadPicture("setup.bmp") '輸出圖形
Form1.PrintForm ' 將顯示窗體的內(nèi)容送到打印機(jī)
Printer.EndDoc ' 開始打印
End Sub
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
怎樣用熱敏打印機(jī)把vb.net窗體內(nèi)文本框內(nèi)容打印出來
VB中的幾種打印方法
看《致命連線》電影,學(xué)習(xí)RDP協(xié)議壓縮思路
VB中窗體的常用屬性及其功能
Visual Basic應(yīng)用程序的幾種打印方法
VB程序設(shè)計教程VB(VisualBasic)是一種基于Windows的應(yīng)用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服