• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2007-08-25 01:30:42姚文利李建慶
      智能計算機與應(yīng)用 2007年4期
      關(guān)鍵詞:窗體調(diào)用繪圖

      姚文利 李建慶

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

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

      1.NET精簡框中訪問圖形對象的方法

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

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

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

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

      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對象,可以繪制線條、多邊形和各式文字。采用這種方法繪制的窗體背景所占用的內(nèi)存空間比讀取整幅圖片時少得多,正好符合嵌入式系統(tǒng)內(nèi)存少的特點。

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

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

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

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

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

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

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

      4結(jié)束語

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

      猜你喜歡
      窗體調(diào)用繪圖
      來自河流的你
      中國三峽(2022年7期)2022-12-02 05:28:02
      “禾下乘涼圖”繪圖人
      學與玩(2022年10期)2022-11-23 08:31:08
      核電項目物項調(diào)用管理的應(yīng)用研究
      試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
      檔案天地(2019年5期)2019-06-12 05:12:02
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      基于HTML5 Canvas繪圖技術(shù)應(yīng)用
      電子測試(2018年4期)2018-05-09 07:28:32
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
      河北遙感(2015年2期)2015-07-18 11:11:14
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      數(shù)組矩陣虛擬窗體算法在自動分揀系統(tǒng)設(shè)計中的應(yīng)用
      普兰县| 无极县| 黄浦区| 崇文区| 靖宇县| 勃利县| 绍兴县| 东光县| 和顺县| 斗六市| 林口县| 黎平县| 宿州市| 昂仁县| 怀集县| 滦南县| 康平县| 兴宁市| 布尔津县| 若尔盖县| 镇江市| 克拉玛依市| 和龙市| 朝阳县| 盐山县| 许昌县| 抚松县| 衡阳县| 固安县| 邹平县| 成安县| 惠安县| 墨脱县| 阿坝| 云阳县| 南召县| 温宿县| 开平市| 长白| 锦屏县| 马鞍山市|