轉載必須注明原文轉自C++博客(cppblog),作者畢達哥拉斯半圓,謝謝合作。寫這個文章的目的,是希望得到更多人的幫助、指導、提供建議,甚至合作。我想自己開發一個Windows上的C++GUI,我取名叫做WarmGUI,因為CoolGUI.com已經被人注冊了,我想那我就叫Warm吧 ^_^
我會用MFC開發簡單的Windows應用,我的興趣在服務器端并且喜歡稍微系統底層一些的工作,做了較長時間之后。現在的工作需要我開發一個客戶端應用,但是現在,我發現桌面世界變了,我總結了一些主要原因,不一定正確,而且,這也不是我的重點,只是闡述我的目的和動因,請批評指正。
1. Apple公司的個人產品更加注重個性化合視感(look & fell),盡管不是新話題,在GoF的設計模式中,已經論述過MVC以及look & fell,那么在GoF之前這個話題必然已經存在一段時間了。但是喬布斯幫主在這個方向做到了極致,各種i產品不斷沖擊桌面,移動,掌上各種終端,導致所有的廠商不得不跟上Apple公司的腳步。
2. 為了獲得"漂亮"的視覺效果,iOS, Android, linux等產品以OpenGL為主要渲染工具做界面開發,而微軟公司與之抗衡的工具是DirectX,并且在近些年的發展中DirectX大有超過OpenGL的勢頭,至少在某些宣傳中是這樣。當然這兩技術必然將長期共存很長時間。
3. 微軟為了跟上時代潮流,從Win7開始,系統內置DirectX11客戶運行庫,用戶無需單獨安裝。而WPF開始取代MFC做為主流的桌面產品,WPF的子集Silverlight也作為網頁前端開發工具,在IE9中提供特殊視覺效果。
至此,我認為開發UI應用的人必須:
1. 學習和掌握DirectX/OpenGL至少兩者之一
2. 學習和掌握WPF以及Net4以上
但是對我個人而言,我學習WPF但是拒絕使用WPF,原因如下:
1. WPF是一個新的框架,只要是框架就會被限制在里面,mfc那冰冷呆板的樣子就是一個例子(這也給Apple可乘之機)。wpf不過是用新的冰冷呆板的框架取代了舊的冰冷呆板的框架。
2. 據說WPF的效率不佳,并且WPF的視覺效果,是對Direct3D, Direct2D等的封裝,如果想玩的好,還是得從DX玩學起。
3. 我非常厭惡 C# + .Net 組合,拒絕使用任何C#和.Net,我喜歡效率,喜歡赤裸裸的虐待系統,不喜歡隔著衣服玩女人。我強烈的要求使用C++/C做開發,我不知道是否有人跟我一樣,還是這只是我的個人偏好。
綜合以上原因,我下載了
CEGUI,
MyGUI, 這兩個C++UI框架的主要應用時游戲,當然了,OpenGL/DirectX神馬的最早就是應用在游戲上的,他們已經做的比較完善,比較強大了。但是我運行了他們的Demo之后,卻對效率界面效果不是很滿意而且有錯誤,看來需要讀他們的源代碼,并且修改。
既然如此,我想我可以開發一個自己的框架,反正我要學習的東西那么多(Dx,OGL, WPF, CEGUI, MyGUI...),邊學邊干唄。既然要學習,就學的高興一點,玩得嗨一點。
目前我的設想如下:
1. 作為通用的界面基礎,在此之上構建商業軟件,游戲等等;
2. 輕量級的類庫,不像MFC那樣對一切進行封裝,允許大量使用Windowd API,只做必要的封裝;
3. 保持靈活度和擴展性;
4. 采用Direct2D, Direct3D做渲染;
5. 后期做一個可視化的IDE,嵌入VisualStudio中,做窗口布局,自動生成代碼等。
看來我要做的工作還真不少,下一節,我開始把我做的一些工作總結寫出來,還要請大家不吝賜教啊!學生這里先謝過啦~
珍愛生命,努力編程!!