国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

WinCE.net下圖形用戶界面的開發(fā)

2007-08-25 01:30:42姚文利李建慶
關(guān)鍵詞:窗體調(diào)用繪圖

姚文利 李建慶

摘要:討論了一種可以節(jié)省內(nèi)存的繪制窗體背景界面的方法:實(shí)現(xiàn)了窗體無效后蔓繪先前背景的功能。

關(guān)鍵詞:圖形用戶界面WinCE.netNET精簡(jiǎn)框嵌入式系統(tǒng)

1.NET精簡(jiǎn)框中訪問圖形對(duì)象的方法

在顯示屏上繪圖,.NET精簡(jiǎn)框程序必須擁有Graphics類的一個(gè)實(shí)例。對(duì).NET精簡(jiǎn)框類的研究發(fā)現(xiàn),有兩種方法可以訪問Graphics對(duì)象:一種方法是調(diào)Paint事件,通過Paint事件中提供的PaintEventArgs參數(shù)的屬性訪問Graph-ics對(duì)象。它由系統(tǒng)發(fā)出,主要處理窗體中的繪圖,并通知一個(gè)窗體其內(nèi)容需要重繪;另一種方法是調(diào)用CreateCraphics函數(shù),利用調(diào)用返回的Graphics對(duì)象繪圖。雖然Create-Graphics方法名稱表示創(chuàng)建了一個(gè)Graphics對(duì)象,但事實(shí)上并非如此。它只是向窗體“租用”了Graphics對(duì)象,完成調(diào)用Graphics對(duì)象后必須調(diào)用Dispose方法返回對(duì)象。

2WinCE操作系統(tǒng)下基于VB.NET的窗體背景界面實(shí)現(xiàn)方法

在桌面系統(tǒng)中為窗體設(shè)計(jì)一個(gè)漂亮的界面,可以直接加入Picturebox控件,再將其屬性中的Image項(xiàng)修改為需要的圖片。采用這種方法,程序啟動(dòng)時(shí),圖片就顯示在背景窗體上,但讀取一幅圖片,需要消耗大量的內(nèi)存空間?;赩B.NET的界面程序,啟動(dòng)時(shí)本身需求的內(nèi)存空間就非??捎^,如果背景圖片所需內(nèi)存空間過大,可能會(huì)導(dǎo)致程序掛起。另外,考慮嵌入式系統(tǒng)頻率低、內(nèi)存少的自身特性,編寫好的應(yīng)用程序,應(yīng)盡量節(jié)省內(nèi)存空間。制作背景時(shí),我們采用的方法是調(diào)用繪圖函數(shù)。

繪制窗體背景通常有兩種方法。一種是使用窗體事件Form_Paint:另一種是使用重繪事件Onpaint。它們都提供PaintEventArgs參數(shù),利用該參數(shù)的屬性訪問Graphics對(duì)象,編寫繪圖代碼可以繪制窗體背景。由于這兩個(gè)Paint事件都是由系統(tǒng)發(fā)出的,當(dāng)窗體創(chuàng)建、隱藏、放大或縮小時(shí),它們都會(huì)自動(dòng)調(diào)用Paint函數(shù)中的代碼重繪。值得注意的是:繪制窗體背景時(shí),不能調(diào)用事件Form_Load。調(diào)用Form_Load事件繪制的窗體背景在窗體中一閃而過,不能長(zhǎng)時(shí)間停留,達(dá)不到顯示的效果。

OnPaint函數(shù)定義格式為Protected Overrides Sub On-Paint(ByVal e As PaintEventArgs)。Form_paint函數(shù)定義格式為Private Sub Form_Paint(ByVal sender As Obiect。By-Val e As System.Windows,F(xiàn)orms,PaintEventArgs)HandlesMyBase,Paint。利用e參數(shù)的屬性訪問Graphics對(duì)象,可以繪制線條、多邊形和各式文字。采用這種方法繪制的窗體背景所占用的內(nèi)存空間比讀取整幅圖片時(shí)少得多,正好符合嵌入式系統(tǒng)內(nèi)存少的特點(diǎn)。

3多個(gè)背景的窗體無效后重繪先前背景的實(shí)現(xiàn)方法

顯示屏是多任務(wù)、多線程操作系統(tǒng)WinCE的共享資源。為了避免程序間的沖突,同一時(shí)間系統(tǒng)只允許向顯示屏發(fā)出的一個(gè)Paint繪圖事件。創(chuàng)建、隱藏、滾動(dòng)、放大或縮小窗體和打開新文件都會(huì)使原來的窗體無效。窗體無效后,系統(tǒng)自動(dòng)調(diào)用Paint函數(shù)重繪窗體背景。但對(duì)于多個(gè)背景的窗體,窗體無效后,如何使Paint函數(shù)重繪無效前的背景是我們要解決的問題。

我們通過在OnPaint函數(shù)中設(shè)置旗幟變量實(shí)現(xiàn)了窗體無效后重繪先前背景功能。方法如下:

(1)創(chuàng)建一個(gè)圖形對(duì)象。定義格式如下:Dim gp A8Graphics=CreateGmphics():

(2)在主窗體中定義一個(gè)旗幟變量。根據(jù)不同情況設(shè)置特定枚舉值:

(3)使用條件語(yǔ)句判斷繪圖代碼。符合哪個(gè)枚舉值,就繪制相應(yīng)的背景。

下面舉例說明具體的實(shí)現(xiàn)方法。是一個(gè)窗體結(jié)構(gòu)示意圖。其中虛箭頭表示繪制窗體背景事件,實(shí)箭頭表示窗體無效事件。窗體無效后,繪制哪一個(gè)背景圖是我們要解決的問題。三個(gè)虛箭頭分別表示繪制聲音錄制、波形顯示和頻譜顯示的背景圖。我們?cè)谥鞔绑w中設(shè)定一個(gè)flag變量,標(biāo)識(shí)主窗體無效前的背景圖片。錄制聲音時(shí),flag的值置1;顯示波形時(shí),flag的值置2:顯示頻譜時(shí),flag的值置3。當(dāng)主窗體調(diào)用打開保存文件、輸入信息或顯示結(jié)果事件后,主窗體無效。這時(shí)系統(tǒng)將自動(dòng)調(diào)用OnPaint函數(shù),OnPaint函數(shù)根據(jù)flag的值,繪制窗體無效前的相應(yīng)背景。

4結(jié)束語(yǔ)

隨著嵌入式系統(tǒng)應(yīng)用領(lǐng)域的不斷擴(kuò)大,嵌入式系統(tǒng)開發(fā)需要考慮圖形用戶界面問題。我們?cè)赪inCE系統(tǒng)上開發(fā)語(yǔ)音頻譜分析儀時(shí),需要處理大量的圖形繪制問題。根據(jù)我們的實(shí)踐經(jīng)驗(yàn),總結(jié)出了一些實(shí)現(xiàn)圖形用戶界面的方法。通過調(diào)用paint函數(shù)繪制窗體背景,有效地節(jié)省了內(nèi)存空間;通過在OnPint函數(shù)中設(shè)置旗幟變量實(shí)現(xiàn)了窗體無效后重繪先前背景的功能。

猜你喜歡
窗體調(diào)用繪圖
來自河流的你
“禾下乘涼圖”繪圖人
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
檔案天地(2019年5期)2019-06-12 05:12:02
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于HTML5 Canvas繪圖技術(shù)應(yīng)用
基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
河北遙感(2015年2期)2015-07-18 11:11:14
基于LayeredWindow的異形窗體局部刷新
中文信息(2014年2期)2014-03-06 23:49:14
數(shù)組矩陣虛擬窗體算法在自動(dòng)分揀系統(tǒng)設(shè)計(jì)中的應(yīng)用
伊春市| 邓州市| 晋江市| 开原市| 左贡县| 常熟市| 通城县| 抚顺县| 荃湾区| 炎陵县| 宝丰县| 塔河县| 乐至县| 兴化市| 大方县| 吉安县| 武隆县| 明星| 颍上县| 澄迈县| 平罗县| 淄博市| 正定县| 沙河市| 内丘县| 沾益县| 柳江县| 昭觉县| 新津县| 德化县| 哈密市| 临沂市| 辽宁省| 舟曲县| 会理县| 玉树县| 青神县| 康乐县| 隆林| 浑源县| 丰城市|