使用VB實現所見即所得功能

2023-01-24 16:30:03 字數 2429 閱讀 7582

使用vb實現所見即所得功能.txt不要為舊的悲傷而浪費新的眼淚!現在幹什麼事都要有經驗的,除了老婆。沒有100分的另一半,只有50分的兩個人。  一、方法概述

為了在螢幕上模擬列印效果,我們使用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 - 1

for j = 0 to - 1

if = then

(end if

next j

next i

end sub

為了在螢幕上可以清楚地看到文字和圖形在列印紙上的位置和大小關係,必須使vb顯示視窗的大小比例和列印紙張的大小比例是一致的。列印紙張的大小可以使用printer物件的width和height屬性來獲得。根據獲得的屬性值可以設定vb顯示窗體的大小比例,使之合乎紙張的比例大小。

下面的具體程式中有乙個變數size,其取值的範圍為0-1。它的作用是控制列印圖形的大小。當size的值為1的時候,列印圖形將和windows設定的紙張一樣大小。具體程式如下:

private sub form_load()

dim size as intecer

size = 0.95

= * size

= * size

end sub

四、模擬列印和列印輸出

下面的一段程式演示了在顯示窗體上模擬列印文字和圖形的方法,以及使用printform把顯示窗體中的文字和圖形輸出到印表機的方法。

必須注意的是:為了使用printform方法,必須把顯示窗體的autoredraw屬性設定為true。

由於printform方法列印窗體的內容是使用bit-by-bit的拷貝方法,因此在窗體裡的所有文字和圖形都可以被原樣列印出來。作為例子,我們可以使用ole控制項來顯示word公式編輯器裡編輯的公式,使用picture和graph控制項來顯示圖形和統計圖。然後使用printform方法將它們列印出來。

具體程式如下:

sub printonscreen()

(0, 0)-(100, 100) '設定座標

(100, 0)-(0, 100) '顯示畫線

= 0= 0= "黑體" '輸出文字

= 20

"模擬列印"

= loadpicture("") '輸出圖形

'將顯示窗體的內容送到印表機

'開始列印

end sub

如何在VB環境下利用並口實現PLC控制

1 引言 普通的計算機一般都配有並行介面 就是通常用的印表機介面 它是通過25芯的d型接頭連線印表機與計算機的,計算機的並行介面不僅可以向印表機傳送資料,還可以從印表機接收資料 列印的工作狀態 因此,利用計算機的並行介面,你可以去控制外部繼電器的吸合,從而控制外部裝置,同樣可以利用它來檢測外部裝置的...

借助VMware實現單機使用WinDbg

偵錯程式中,softice可以說是鼎鼎大名。而 microsoft 的偵錯程式 windbg 則有很多 softice 不具備的非常有用的功能。對於從事 windows 系統研究和驅動開發的人來說,windbg 實在是件上好的兵器,值得推薦。不過要想使用它並不是件容易的事,它需要有兩台計算機,一台除...

使用VB語言編制質檢機構標準管理程式

電腦程式設計技巧與維護 張仔志 遼寧省食品藥品檢驗所,瀋陽 摘要 介紹使用 語言編制的用於實驗室標準管理的應用程式,包括認證專案的查詢 檢測引數及標準檢測 方法的查詢 標準備案表的生成 符合國家計量認證申請書格式的申請書附表 和附表 的生成。資料庫使用 資料庫系統。關鍵詞 標準 計量認證 實驗室 資...