在上一講中,我們簡單講解了touchgfx按鈕控件的使用以及消息響應的編程方法。本文將介紹如何使用touchgfx開發(fā)多個屏幕界面的應用,并引出touchgfx編程使用的一個重要的基本概念:MVP框架模式。關于MVP的說明可參考這個鏈接??梢园袽VP簡單理解為一種“規(guī)范的”保存用戶數(shù)據(jù)和訪問數(shù)據(jù)的方法。
下面用一個模擬時鐘的具體例子來說明。我們創(chuàng)建2個屏幕--screen,一個是時間設置界面,一個是數(shù)字時鐘界面:

具體實現(xiàn)如下:
一、啟動?TouchGFX 4.10.0 Designer,創(chuàng)建一個新的Application(項目名稱可自定):
然后將屏幕上要放置的圖形控件文件copy到對應的image子目錄中(圖形文件資源包下載地址):
還需要做一個準備工作:新增一個25px的字體、供按鈕顯示提示文字之用,并設置40px字體的 Wildcard Ranges 為 0-9 (為了在Text Area控件中顯示數(shù)字):
第一個Screen為時鐘參數(shù)的配置界面,外觀如下:
左半部分的跟“小時”有關的幾個控件的配置參數(shù)如下:
顯示小時數(shù)值的?textAreaHour 的配置如下2個圖片:

“增大”箭頭:
這里,向上箭頭對應的圖片,是從下圖的 Released Image 下拉框、然后選擇 Project、出現(xiàn)8個方格圖標、再選擇向上箭頭得到的:

Pressed Image下拉框做同樣處理、選擇那個灰色的向上箭頭即可。
“小時”下方的 Save 按鈕是保存設置的小時數(shù)值,命名為 buttonSaveHour,配置如下:
右半邊跟“分鐘”設置有關的幾個控件需做類似配置,篇幅所限、此處略過。
最下邊的 Clock 按鈕是切換到另一個Screen的,命名為 buttonClock,配置如下:
第一個Screen的界面配置完畢,下面添加各個按鈕的消息響應代碼。先在 Touchgfx Designer 中配置“動作觸發(fā)”對應的C++語言處理函數(shù):
其他3個調(diào)整數(shù)值的箭頭做類似配置,函數(shù)名稱(即上圖中的 Function Name 輸入框)分別設置為:buttonHourDownClicked、 buttonMinuteUpClicked 和?buttonMinuteDownClicked。以及:
類似地配置“分鐘”下方的 Save 按鈕,唯一不同的是把 Function Name 改為?buttonSaveMinuteClicked。好了,下面跳轉(zhuǎn)到程序代碼部分,點擊?TouchGFX Designer 界面右下角的 “Browse Code”,彈出生成的項目文件代碼所在的目錄,找到 Application.sln:
雙擊 ?Application.sln 啟動VS,進入代碼編輯界面。如果VS啟動后彈出如下提示窗:
一定要點擊 OK 按鈕、免去之后VS因編譯版本不同而提示錯誤。(Touchgfx Designer 4.00自動生成的VS項目使用的是較舊版本的編譯工具鏈、造成與VS2003默認的編譯工具鏈不匹配,會產(chǎn)生錯誤。這個錯誤是可以通過重新配置正確的編譯器版本來修正的,此處就不詳述了)
在VS中打開?Screen1View.hpp 文件,添加2個記錄小時、分鐘數(shù)值的變量?hour、minute,以及消息響應函數(shù)的聲明:
在類實現(xiàn)文件 Screen1View.cpp 中,添加函數(shù)消息體:
編譯運行一下,看看第一個 Screen 是否能正確顯示:
用鼠標分別點擊小時和分鐘的增減箭頭按鈕,看看數(shù)值增減是否正確、24小時以及60分鐘越界后顯示是否正確。還好,小時和分鐘顯示都是正常的 ^_^ !
這個例子內(nèi)容稍多,只好拆成兩部分來講解,上半場先到這里,下半場請戳這里。