时间: 2021-07-31 作者:daque
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因变量,在list第11中学就寄存一切表露与打字与印刷双功效字模的称呼。 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 [page_break]三、窗体巨细和纸张尺寸的配合 为了在屏幕上不妨领会地看到笔墨和图形在打字与印刷纸上的场所和巨细联系,必需使vb表露窗口的巨细比率和打字与印刷纸张的巨细比率是普遍的。打字与印刷纸张的巨细不妨运用printer东西的width和height属性来赢得。按照赢得的属性值不妨树立vb表露窗体的巨细比率,使之符合纸张的比率巨细。 底下的步调中有一个变量size,其取值的范畴为0-1。它的效率是遏制打字与印刷图形的巨细。当size的值为1的功夫,打字与印刷图形将和windows设定的纸张一律巨细。简直步调如次: sub form_load () dim sizeas intecer size=0.95 form1.height=printer.height*size form1.wdth=printer.width*size end sub 四、模仿打字与印刷和打字与印刷输入 底下的一段步调演练了在表露窗体上模仿打字与印刷笔墨和图形的本领,以及运用printform把表露窗体中的笔墨和图形输入到打字与印刷机的本领。 提防的是:为了运用printform本领,必需把表露窗体的autoredraw属性树立为true。 因为printform本领打字与印刷窗体的实质是运用bit-by-bit的正片本领,所以在窗体里的一切笔墨和图形都不妨被原样打字与印刷出来。动作例子,咱们不妨运用ole控件来表露word公式编纂器里编纂的公式,运用picture和graph控件来表露图形和统计图。而后运用printform本领将它们打字与印刷出来。 简直步调如次: sub printonscreen () form1.scale(0,0)-(100,100) ’ 树立坐标 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 ’ 将表露窗体的实质送给打字与印刷机 printer.enddoc ???’ 发端打字与印刷 end sub