迪文屏幕學習筆記二:變量圖標顯示和按鍵返回值按鈕學習

需要實現一個功能:當點擊某個按鈕時候,要求能夠改變按鈕的字體和顏色,比如:

點擊strat按鈕後,顯示stop,這樣再點擊就實現Stop邏輯,同時顯示變成Start,也

就是說把Start和Stop按鈕功能合成一個按鈕;同時還要求按鈕爲白色,表示可以點擊,

爲灰色則不能點擊。爲了實現這個功能我的思路如下:

思路一:文本顯示+控制文本背景顏色+按鈕控件,要求文本控件區域和按鈕控件區域

完全重合;

思路二:變量圖標顯示+按鈕控件,要求他們區域完全重合;

難點:

1、不知道迪文屏幕支不支持不同的控件可以完全重合在一起,如果不支持那麼只能是

      按鈕切換整個主界面來實現(目前測試來看,按鈕類控件區域不能重疊,其它貌似

      可以, 沒有詳細驗證);

2、我看可了下手冊,不知道怎麼控制文本控件的背景顏色,因此我選擇方案2;

實現步驟:

一、ICO製作

我看了下變量圖標顯示控件的使用,首先用PS軟件做出你要顯示的效果圖,然後用

DWIN ICO生成工具把你的圖標打包成一個ICO文件,拷貝進DGUS Tool V7.383.exe

工程的DWIN_SET文件夾即可,注意:

1、用PS製作的bmp格式圖片大小必須是X=偶數,Y=偶數;

2、DWIN ICO生成的ICO文件命名必須以數字開頭,並且數字在24~127之間;並且

     生成後不可重命名數字部分;

3、顯示模式可選擇透明或者顯示背景,這個是針對ICO設置的,如果是透明,則顯

     示ICO位置後面的主界面圖案;如果顯示背景,則顯示覆蓋後面的主界面部分;

4、後面被覆蓋的主界面的顯示模式也可以設置,我沒有做實驗,不知道什麼效果;

5、其它就看手冊使用就好,無非就是有一組值對應組ICO,然後還有變量地址綁定,

     往這個地址裏面寫入某個值,則對應的ICO就會被顯示出來;超過設置的這組線性

    值,則爲不顯示ICO(這個時候顯示後面的主界面區域);

6、注意一定不能頻繁更新這個值,否則會有閃屏效果;

二、按鈕

我剛開始用的普通按鈕控件,但是我找了半天,手冊也麼有說這個控件怎麼用,我搞

了半天,也沒有找到地址綁定,那麼怎麼知道按鈕被按了呢?我猜想這個控件可能是

切換畫面(圖片)用的,因此我改選爲按鍵返回值控件。這個控件就很簡單了:

1、在主界面畫出一個按鈕區域(爲了保險起見,我把X/Y/W/H都設置爲偶數);

2、綁定地址(字對齊,你懂得,什麼不懂?那請看我的上篇博客,學習筆記一);

3、設置按鍵返回值;

我說下原理:DWIN GUI程序不停檢測屏幕,當檢測到按鈕的設置區域有按壓動作,

則把用戶設定的按鍵返回值寫入到綁定地址裏面;也就是說,當用戶檢測到綁定地址

變量爲用戶寫入值後,則認爲按鍵有效,這個時候,用戶可以給綁定地址寫入一個按

鍵無效的保留值,已達到清除按鍵的效果(這個時候,我猜如果用戶一直按壓,沒有

擡起的動作,那麼按鍵值被清除後,也不會被DWIN GUI程序再次寫入鍵值);

三、組合邏輯

這個就很簡單了,不停的檢測按鍵綁定地址的值是否爲按鍵有效值,如果爲按鍵有效值,

則認爲是一個有效的按鍵動作,改變位圖綁定地址的值,顯示對應ICO位圖;同時清除

按鍵值,並執行用戶的按鍵其它邏輯;

效果如下圖:

一個白色的Start按鈕,點擊後變灰:

 

<------------------------------------------------------------2019.11.09------------------------------------------------------------>

 

 

 

PS:

1、注意按鍵地址從0x5000開始,纔可以通過綁定地址讀取到按鍵值,我在這裏耗費了好長時間,但是沒有任何一個手冊告訴我這點,鬱悶;

2、同一個頁面的不同05按鍵值返回控件的鍵值綁定地址,如果想通過OS查詢是否有按鍵按下,那麼綁定地址必須一致(不必勾選數據自動上傳);

3、08觸摸屏按壓狀態同步數據返回控件,如果想用0S查詢是否有按下,長按,擡起動作發生,則VPT地址必須和05控件一致,必須選擇模式01,VPS地址從0x5000開始;

以上只是在我的屏幕上試驗成功的幾個注意,能工作,並沒有全面驗證。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章