• 
    

    
    

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

      基于MFC的工程軟件界面設計

      2011-06-05 11:01:50姜明新
      電子設計工程 2011年21期
      關鍵詞:控件對話框應用程序

      徐 璇,姜明新,黃 靜,徐 晶,李 敏

      (大連民族學院 信息與通信工程學院,遼寧 大連116600)

      Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0 的下一代開發(fā)工具,代號“Orcas”,是對 Visual Studio 2005一次及時、全面的升級。VS2008引入了250多個新特性,整合了對象、關系型數據、XML的訪問方式,語言更加簡潔。使用Visual Studio 2008可以高效開發(fā)Windows應用程序[1]。

      VS2008是一種集成開發(fā)環(huán)境,提供了MFC類庫。MFC(Microsoft Foundation Class Library)是微軟公司對大部分標準的Win32 API函數的封裝,提供了圖形環(huán)境應用程序的框架及創(chuàng)建應用程序的組件。

      MFC類庫是C++語言與Windows的接口,利用MFC編寫程序的本質是選擇該類庫中合適的類,并調用其下相應成員函數來完成某個功能。整體上,MFC框架定義了應用程序的輪廓,并提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。

      VS提供了相應的工具來完成該工作:AppWizard可以用來生成初步的框架文件(代碼和資源等);資源編輯器用于幫助用戶直觀地設計用戶接口;ClassWizard用來協(xié)助添加代碼到框架文件;編譯,則通過類庫實現(xiàn)了應用程序特定的邏輯[2]。

      1 對話框

      1.1 概述

      對話框主要由兩部分組成:對話框資源和對話框類。對話框資源:可以使用對話框編輯器來配置對話框的界面,如對話框的大小、位置、樣式,對話框中控件的類型和位置等;對話框類:在MFC程序中,可以使用向導幫助用戶建立一個與對話框資源相關聯(lián)的類,通常這個類由CDialog類派生。

      Windows應用程序工作的基本流程是從用戶那里得到數據,經過相應的處理之后,再把處理結果輸出到屏幕,這就需要用到一個很重要的用戶接口——對話框,即一個可以接收消息、被移動或關閉的窗口。

      對話框有兩種類型,模態(tài)對話框和非模態(tài)對話框。模態(tài)對話框是指當其顯示時,程序會暫停執(zhí)行,直到關閉這個對話框才能繼續(xù)執(zhí)行任務;而非模態(tài)對話框顯示時,允許轉而執(zhí)行程序中的其他任務?;诖颂攸c,選擇建立一個非模態(tài)對話框。

      1.2 對話框的建立

      首先新建一個基于對話框類型的MFC AppWizard工程,命名為 “心電工作站”。然后使用build命令生成命令程序并執(zhí)行。創(chuàng)建一個非模態(tài)對話框,則需要利用CDialog類的Creat成員函數[2]。該函數具有以下兩種形式的聲明:

      2MFC的程序控制設計——心電工作站

      2.1 MFC程序執(zhí)行流程

      在MFC程序當中是一系列派生類的聲明和定義以及一個由CWinApp類派生而來的類全局對象。調用完CWinApp的構造函數后由連接器向程序內自動鏈接的AfxWinMain函數調用,可以當做MFC的程序入口函數。之后AfxWinMain函數調用成員函數。在程序的運行過程當中,由操作系統(tǒng)源源不斷地發(fā)送消息給應用程序,由消息循環(huán)處理并且分發(fā)給相關的窗口對象的DefWindowProc成員函數。消息運行結束后,用戶按下關閉按鈕后,操作系統(tǒng)向程序發(fā)送WM_CLOSE消息,應用程序接收到這個消息以后的默認操作是調用PostQuitMessage函數,由這個函數發(fā)送WM_QUIT消息。當程序對象接收到WM_QUIT消息后消息循環(huán)結束,由AfxWinMain函數調用AfxTerm函數清理程序使用過的資源并且結束整個程序[3]。

      2.2 給對話框添加背景

      首先將選擇為背景的.bmp圖片導入工程,資源視圖里面右鍵點擊工程文件夾→選擇 “添加資源”→位圖→選擇需要導入的位圖圖片。用下面的代碼將位圖加載為對話框的背景[4]。

      2.3 子對話框的制作

      完成主對話框的創(chuàng)建和顯示后,需要對子對話框進行制作,使其實現(xiàn)對應按鈕的功能。這些功能可以由MFC工具箱提供的控件來完成。

      控件是獨立的小部件,是現(xiàn)成的程序組件,可獨立運行并完成一定的功能。控件的外觀和功能由其屬性規(guī)定。所有的控件都是由CWnd類派生的類對象,每個控件均有一個標識符 (ID),程序中可通過對這個標識符對應的控件進行操作??丶姆N類很多,如圖顯示了一些基本控件以及應用控件制作的子對話框[5]。

      圖1 基本控件說明Fig.1 Description of the basic space

      圖2 子對話框顯示Fig.2 Display of sub-dialog box

      2.4 通過按鈕調用子對話框

      在MFC中,對資源的操作通常都是通過一個與資源相關的類來完成的。對話框資源也有一個相應的基類。因此首先需要創(chuàng)建一個類與要調用的子對話框相關聯(lián)(或者也可以選擇程序中已有的一個類與之相關聯(lián))[5]。實現(xiàn)代碼如下:

      2.5 給按鈕加載位圖

      用與添加對話框背景圖片的形式將按鈕的背景位圖導入資源視圖里,然后通過下面的代碼給按鈕添加背景圖片:

      2.6 界面樣板設計

      以上各節(jié)所述的是實現(xiàn)界面可視化的核心與基礎,搭建了界面的可視化模塊平臺。通過繪圖工具、PS圖像整合、界面模板修正定位等系列軟件,制作出界面的應用圖片,依照程序及MFC界面實現(xiàn)的不同功能進行圖片的反復定位[6]。

      各軟件中的顏色定位都是以RGB為模板,以適應電子設備的圖像輸出。通過對RGB色差的調整,達到理想的界面顏色設置。開始對圖像進行二值顯示,只有黑白色調,來對界面的整體布局進行把握和評定。接著對部分的圖片進行灰度處理,最后呈現(xiàn)出RGB的真彩色圖像。界面圖像的細節(jié)部分進行放大后將出現(xiàn)明顯的失真現(xiàn)象,對于緩變圖像進行細量化粗采樣以避免虛假輪廓,對于細節(jié)豐富圖像進行細采樣粗量化以避免模糊。通過以上的基礎工作,整合實現(xiàn)了心電工作站界面樣板設計。

      圖3 心電工作站界面Fig.3 Interface of ECG workstation

      圖4 車輛違停檢測界面Fig.4 Interface of vehicle violations stop testing

      3 生成可執(zhí)行文件

      為了讓程序能在沒有安裝VS軟件的電腦上運行,要對程序進行封裝,生成可執(zhí)行文件。 首先,新建安裝部署項目。將界面應用程序的可執(zhí)行文件和相應的類庫和組件添加進來。然后為對應的文件創(chuàng)建快捷方式,并把快捷方式分別復制或剪切到左邊的“用戶的‘程序’菜單”和“用戶桌面”中。這樣安裝程序安裝完成后會在 “開始→所有程序”和“桌面”上生成程序的快捷方式。然后,將屬性中的“DefaultLocation”的路徑中的“[Manufacturer]”去掉,不然做好的安裝程序默認安裝目錄會是“C:Program Files電腦用戶名安裝解決方案名稱”;最后,打開系統(tǒng)必備頁,在“指定系統(tǒng)必備安裝組件的位置”中選擇下載與界面應用程序相同位置的系統(tǒng)必備組件,便可在安裝文件包中包含.NetFramework組件,點擊“生成→生成解決方案”。完成上述操作后便可在解決方案文件夾下的Debug文件夾中找到生成的安裝文件了。

      4 結束語

      MFC是C++實現(xiàn)界面可視化設計的核心,配合動態(tài)鏈接庫實現(xiàn)界面設計。雖然MFC可能被取代,但MFC是C++語言走向真正實用化,以及研究者實現(xiàn)進一步發(fā)展的基礎。一個友好美觀的界面會帶來舒適的視覺享受,拉近距離,創(chuàng)造價值。界面設計不再是單純的美術繪畫,需要定位使用者、使用環(huán)境、使用方式并且為最終的需求服務,是純粹的科學性的藝術設計。文中通過對基于MFC的一系列操作,實現(xiàn)了一個良好的交互平臺的設計。隨著科學技術和時代的不斷發(fā)展,界面設計將會步入一個更高的平臺。

      [1]孫鑫.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

      [2]溫秀梅,丁學鈞.Visual C++面向對象程序設計[M].北京:清華大學出版社,2005.

      [3]譚浩強.C++面向對象程序設計[M].北京:清華大學出版社,2006.

      [4]袁媛.基于MFC類設計ObjectARX應用程序界面[J].中南大學學報,2004,35(3):448-452.YUAN Yuan.MFG sequence-based design for ObjectARX application interface[J].Journal of Central South University,2004,35(3):448-452.

      [5]楊剛.基于MFC用戶界面設計主、子對話框數據的傳遞[J].機電產品開發(fā)與創(chuàng)新, 2005,18(6):98-99.YANG Gang.Data transfer of Son and Lord dialog box based on theUIofMFC[J].Development& Innovation of Machinery&Electrical Products,2005,18(6):98-99.

      [6]楊紅軍,王金英.基于VC++的多線程通信程序設計[J].電腦知識與技術,2008(29):64.YANG Hong-jun,WANG Jin-ying.On system design of the mult-threaded communication based on VC++[J].Computer Knowledge and Technology,2008(29):64.

      猜你喜歡
      控件對話框應用程序
      正?;謴吞摂M機
      刪除Win10中自帶的應用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      Bootlace Worms’Secret etc.
      中學科技(2018年12期)2018-12-19 11:22:28
      關于.net控件數組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      快速抓取對話框中的完整信息
      電腦迷(2012年22期)2012-04-29 20:30:54
      關閉應用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      三星電子將開設應用程序下載商店
      微軟軟件商店開始接受應用程序
      在PowerBuUder中利用WinSock控件制作簡單的Web服務器
      玛纳斯县| 广丰县| 东莞市| 蓬溪县| 潞城市| 郴州市| 菏泽市| 乃东县| 新龙县| 石狮市| 祁门县| 江北区| 额敏县| 基隆市| 纳雍县| 晋城| 沾化县| 饶河县| 嘉义市| 锡林郭勒盟| 苍南县| 峨边| 西峡县| 紫云| 柳河县| 海伦市| 江都市| 湖北省| 白河县| 文化| 襄垣县| 平乐县| 江孜县| 彭阳县| 临夏市| 崇州市| 屯门区| 巧家县| 应城市| 昌邑市| 鞍山市|