摘 要:本文闡述了如何在微軟的集成編程環(huán)境Visual Studio 2008中,使用Visual Basic語(yǔ)言實(shí)現(xiàn)一種基于.NET Compact Framework 3.5框架的文本智能閱讀設(shè)備,并分析了Visual Studio 2008環(huán)境下項(xiàng)目與Windows應(yīng)用程序環(huán)境下部分編程代碼的異同。
關(guān)鍵詞:vb.net;智能文本閱讀器;研究
中圖分類號(hào):TP23 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2014) 12-0000-01
隨著電子閱讀器的不斷發(fā)展,其延伸功能包括3G、WIFI、視頻、互聯(lián)網(wǎng)聯(lián)接和彩色顯示。已經(jīng)和普通的筆記本相比美,電子閱讀器的優(yōu)點(diǎn)是它使用單色顯示屏,更加保護(hù)用戶的視力。電子閱讀器的核心是智能文本閱讀設(shè)備,下面我們就說(shuō)一下智能文本閱讀設(shè)備功能及代碼實(shí)現(xiàn)。
VisualStudio 2008是微軟公司推出的一個(gè)可視化的面向?qū)ο筌浖_(kāi)發(fā)平臺(tái),該平臺(tái)集vb.net、c#、vc++為一體,多環(huán)境綜合軟件平臺(tái),同時(shí)它有許多新的特性。微軟在Visual Studio及.NET Framework這兩方面做了大量的工作。可以非常有效地提高開(kāi)發(fā)人員的開(kāi)發(fā)效率。
一、系統(tǒng)運(yùn)行環(huán)境說(shuō)明
Visual Studio 2008為開(kāi)發(fā)基于Windows CE的一系列智能設(shè)備上運(yùn)行的軟件提供了豐富的集成支持。既可以使用Visual C++或Visual Basic來(lái)編寫在.NETCompact Framework上運(yùn)行的托管應(yīng)用程序,同時(shí)又可以使用C#來(lái)編寫本機(jī)應(yīng)用程序,但不管你選擇何種語(yǔ)言,都將使用相同的代碼編輯器來(lái)開(kāi)發(fā)PC應(yīng)用程序、使用相同的設(shè)計(jì)器和相同的調(diào)試器界面。
二、窗體設(shè)計(jì)與界面設(shè)計(jì)
在VS2008環(huán)境下新建一基于Visual Basic的智能設(shè)備項(xiàng)目。NET Framework版本選擇3.5名稱為bookread,在Visual Studio2008的智能設(shè)備項(xiàng)目開(kāi)發(fā)中,整個(gè)項(xiàng)目的設(shè)計(jì)都默認(rèn)在CHS Windows Mobile 5.0Pocket PC R2_ Emulator中完成。主窗體中的文本框textBox為了能夠顯示讀取的文本,應(yīng)設(shè)置其MuhiLiBe屬性為True。通過(guò)FileStream類實(shí)現(xiàn)對(duì)文件系統(tǒng)的讀取、寫人、打開(kāi)和關(guān)閉操作,同時(shí)還對(duì)其它與文件相關(guān)的操作系統(tǒng)句柄進(jìn)行操作處理,如標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出。讀寫操作可分為同步操作與異步操作。通過(guò)FileStream類可對(duì)輸入輸出進(jìn)行緩沖,從而提高了系統(tǒng)的性能。在打開(kāi)文件讀寫時(shí),另外指定編碼為Encoding.Default,以讀取Win-dowsCE操作系統(tǒng)的默認(rèn)ANSI代碼頁(yè)。
為滿足不同GUI用戶的設(shè)計(jì)需要,Visual Basic軟件提供了一個(gè)窗體設(shè)置功能,該功能可實(shí)現(xiàn)前景色、背景色、字體大小的設(shè)置。在3.5版本對(duì)可視化窗體設(shè)計(jì)繼承提供了完全器支持,可以對(duì)窗體重用和擴(kuò)展,而無(wú)需一次次地從頭開(kāi)始創(chuàng)建新窗體。但由于智能設(shè)備項(xiàng)目對(duì)FontDialog ColorDialog并不支持,所以,可以通過(guò)窗體中的兩個(gè)comboBox屬性分別用于設(shè)置窗體的前景色和背景色。通過(guò)6個(gè)textBox控件分別用于輸入與顯示用戶自定義前景色和背景色的RG參數(shù)。字體的大小的調(diào)整用控件numericUpDown實(shí)現(xiàn)。設(shè)置效果的預(yù)覽顯示,通過(guò)窗體上的一個(gè)文本框控件textBox_preview來(lái)完成的。用戶的設(shè)置暫時(shí)由文本框控件textBox_preview的屬性來(lái)保存,當(dāng)用戶單擊OK按鈕時(shí),則父窗體來(lái)讀取該控件的屬性值。
三、窗體間的通訊傳輸問(wèn)題
窗體間有許多種通訊機(jī)制。在CLNET中,每一窗體都是一個(gè)獨(dú)立的類,因此窗體間的通訊傳遞也就是類間的參數(shù)傳遞,窗體作為一個(gè)獨(dú)立的控件又有自己的特性。在.NET下,實(shí)現(xiàn)窗體通信還提供了另外一種強(qiáng)大的機(jī)制,即委托機(jī)制。委托機(jī)制可理解為是一種類型的函數(shù)指針,.NET下是以委托作為基礎(chǔ)實(shí)現(xiàn)事件的。如果夸窗體訪問(wèn)一個(gè)窗體中自定義的成員,則必須把該窗體中成員的可見(jiàn)性設(shè)置為Public或者通過(guò)屬性公開(kāi)。通過(guò)屬性公開(kāi)并不破壞窗體的封裝結(jié)構(gòu),但如果把窗體的可見(jiàn)性設(shè)置成Public,這樣就必然會(huì)地破壞類型封裝性的原則,因此建議大家采用窗體屬性的方案。在我們的軟件中,我們采用將控件改為public的方案,以減輕系統(tǒng)的開(kāi)銷,然后直接讀取窗體中控件的方法。
四、Color類與Font類在設(shè)置顏色與文本格式中的應(yīng)用
Color類位于System Drawing命名空間中.該類列舉了絕大多數(shù)常用的顏色值以供用戶使用:Font類同樣也位于System.Drawing命名空間中.該類用于定義包括字體、字號(hào)和字形屬性在內(nèi)的特定文本格式,由于該類為靜態(tài)類,因此不能實(shí)現(xiàn)類的繼承。在Windows應(yīng)用程序下,Color類和Font類都有一個(gè)與之功能對(duì)應(yīng)的通用對(duì)話框ColorDialogt和lFontDialog,因此我們可以方便地調(diào)用這兩個(gè)類以實(shí)現(xiàn)顏色與文本格式的設(shè)置;而在智能設(shè)備項(xiàng)目的窗體中,雖然沒(méi)有這兩個(gè)通用對(duì)話框,但是提供了這兩個(gè)類。
五、結(jié)束語(yǔ)
在Visual Basic開(kāi)發(fā)環(huán)境下,文本智能閱讀設(shè)備的實(shí)現(xiàn)與以前的版本相比,優(yōu)勢(shì)在于不用關(guān)心外界環(huán)境的配置。并且移動(dòng)設(shè)備上的應(yīng)用程序比Windows應(yīng)用程序要簡(jiǎn)單的多。因此,Visual Studio 2008同樣也為高性能的智能設(shè)備作好了準(zhǔn)備。此命名空間既為Pocket PC、Smartphone及其它運(yùn)行帶有.NET Compact Framework的Windows CE的設(shè)備提供了Direct3D應(yīng)用程序編程,也為移動(dòng)應(yīng)用程序開(kāi)發(fā)人員提供了一種低級(jí)別的圖形用戶編程接口,使用該用戶編程接口技術(shù)不僅對(duì)3D對(duì)象的可視模型實(shí)時(shí)操作,還可通過(guò)控制硬件加速的方法來(lái)提升系統(tǒng)性能。
參考文獻(xiàn):
[1]倪桂博,張國(guó)立.一種快速有效的印刷體漢字識(shí)別方法[J].華北電力大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(03).
[2]孟凡博,劉進(jìn)江.基于智能平臺(tái)的適配器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007(04).
[3]任艷斐.基于Orcas的智能文本閱讀器的研究與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2008.
[4]王合闖.Orcas中實(shí)現(xiàn)文本閱讀智能設(shè)備項(xiàng)目[J].通信技術(shù),2008.
[5]蔡健,范紅春,夏開(kāi)建.基于手機(jī)藥品處方集軟件設(shè)計(jì)研究[J].電腦知識(shí)與技術(shù),2011(02).
[作者簡(jiǎn)介] 王文彬(1967.09-),男,河南濮陽(yáng)人,濮陽(yáng)職業(yè)技術(shù)學(xué)院,副教授,碩士,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)、軟件工程。