emWin 2天速成實例教程001_GUIBuilder的使用方法


備注:(1)打開工程目錄下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本會用emWin做項目,其他章節可以需要時再參考。

利用emWin的配套工具GUIBuilder,我們可實現組態、拖放式人機用戶界面設計;GUIBuilder操作界面非常簡單、一目了然;GUIBuilder生成的界面文件是標准C文件,將生成的C文件加到emWin工程中並在emWin這個圖形庫平台上運行,即可顯示你所設計的界面;每生成一個界面C文件即對應一個頁面,如果要設計多個頁面的界面怎么辦?生成多個界面C文件並在點擊消息中加入界面切換程序即可:

 

(1)值得注意的是emWin的每個界面都必須有一個Framewin/Window控件作為父窗體,這里我們添加一個Framewin控件做父窗體:

 

(2)添加一個Button控件並右鍵修改Button名稱和字體(Button控件還有很多修改屬性的API函數,只是GUIBuilder沒有而已,可通過修改C文件現實,這個時候需要查閱emWin說明書的Button控件API函數):
小技巧:放置xxxx控件之后不要用鼠標移動,用上下左右建移動更容易對齊(步進是5)。

 

(3)添加一個Checkbox控件並設置文字、字體、顏色等(Checkbox控件還有很多修改屬性的API函數,只是GUIBuilder沒有而已,可通過修改C文件現實,這個時候需要查閱emWin說明書的Checkbox控件API函數):
小技巧:放置xxxx控件之后不要用鼠標移動,用上下左右建移動更容易對齊(步進是5)。

 

(4)將界面保存為C文件:

 

(5)安裝emWin脫機模擬仿真軟件:codeblocks-13.12mingw-setup(”軟件/資料下載”欄目可下載)

(6)下載並解壓emWin模擬器版本:SeggerEval_WIN32_MSVC_MinGW_GUI_V528(”軟件/資料下載”欄目可下載)

(7)刪除SeggerEval_WIN32_MSVC_MinGW_GUI_V528/Application目錄下的所有文件(只剩下GUIDEMO_Start.c),並修改GUIDEMO_Start.c:

#include "dialog.h"

void MainTask(void)

{

   GUI_Init();                     //初始化emWin/ucGUI

   CreateFramewin(WM_HBKWIN);      //創建窗體,父窗體是桌面背景

   while(1) {GUI_Delay(20);}       //調用GUI_Delay函數延時20MS(最終目的是調用GUI_Exec()函數)

}

(8)將剛才用GUIBuilder生成的C文件”FramewinDLG.c”復制到SeggerEval_WIN32_MSVC_MinGW_ GUI_V528/Applicatio目錄,並用CodeBlocks打開工程文件:SimulationTrial.cbp

(9)刪除工程Applicatio下面原來的文件並把GUIDEMO_Start.c和FramewinDLG.c添加進來,然后編譯運行:

 

(6)到目前為止,在Framewin窗體上的Button和Checkbox控件還是完全獨立的,也就是除了能點擊和顯示以外,還沒有任何的功能,那么我們怎么為這兩個控件添加功能程序呢?比如我們想通過Button控件去控制Checkbox控件的選擇狀態,那么我們可以通過修改FramewinDLG.c文件的程序實現,在WM_NOTIFY_PARENT消息中(操作屏幕時程序跑到這里)加入以下程序:

hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0);//獲取ID_CHECKBOX_0控件句柄

if(CHECKBOX_IsChecked(hItem)) CHECKBOX_Uncheck(hItem);//ID_CHECKBOX_0取消選擇

elseCHECKBOX_Check(hItem);// ID_CHECKBOX_0選擇

 

(7)GUIBuilder只是一個傻瓜式輔助設計工具,由於其功能欠缺,因此只能設計一個初步的界面;其實emWin真正強大的地方是通過C語言和API函數實現千變萬化的界面,當你熟悉其C語言界面編程方法之后(事實上emWin界面編程是比較簡單的),你就會覺得原來做個界面如此簡單!

 

源碼/軟件下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM