WPF與託管C++ ——智能家居GUI框架實現(第1篇)

1.問題來源

以前自己做的項目一般是面向工業現場的,所以對產品本身外觀並無特別的要求。不過近期做一個智能家居的項目,這個面對的是消費羣體,自然對GUI等的美觀有很明確的要求。我們購置的硬件提供的一般是VC++的API。這樣問題就出現了,用C++如何把界面做漂亮呢?

2.探索過程

在界面的開發方面着實經理了很艱難的一個過程。最初我拒絕用MFC,因爲我知道自己的水平很難用MFC做出漂亮的界面。於是我開始在網上搜索界面開發的工具。最初我選定的是wxWidgets這個工具。本來覺得還可以的,但是開發界面感覺自己還是有瓶頸,因爲各種原因又轉回MFC。最初的效果是這樣的。

Boss說這界面太醜了,得改改(好像是有點醜)。這時在網上搜索到了一些皮膚庫美化MFC,用起來也很簡單(真的很方便,只需要兩行C++代碼),皮膚我用的是appface。做出的效果如下圖

好像是好看了一些,但是我覺得依然有問題。第一是兼容性做的不太好,最大化之後有些遮蓋。再有就是不可再設計。(畢竟還是MFC,我用着很困難)
然後就是第三波了。其實最開始就注意到有WPF,因爲後臺語言是C#以爲無法兼容的。有一天google的時候發現有託管C++可以把WPF和C++結合起來編程。當時我真的很高興,因爲我見過WPF做的界面,很漂亮(不過後來我才知道我給自己挖了多大的坑。一是我沒學過C#,二是我基本沒寫過dll工程)。不過經過三週的奮戰,終於還是把框架搭起來了,圖像可以從攝像頭採集回來了。
最終的界面效果如下圖
 
這是啓動界面

這是登陸界面

這是主頁

這是安防系統界面

窗口的佈局和配色是從http://www.ui.cn/detail/20025.html網站的圖片上抄過來的。不過得到的只是圖片,我把它們變成了GUI。我很佩服UI設計師,他們是藝術家,我只是個碼農而已。另外目前界面僅僅實現了視頻顯示功能,其他的按鈕還沒有相應的後臺代碼,只有一些界面上的效果。另外這個項目還有很多待解決的問題,比如內存泄漏,CPU佔用高。接下來我會陸續介紹整個框架搭建的全過程。包括界面設計,託管類,事件處理,數據庫操作等。如果有可能的話會將整個項目上傳到github供參考。

3.聲明

本文引用的資源均已註明出處,如還有哪裏侵犯了廣大網友的知識產權,煩請告知,我會及時刪帖。本項目僅用於參考學習,並未用於商業用途。

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