Windows C++界面库
記得大一學C語言的時候,覺得黑白窗很無聊,后來在網上找到了EasyX (一個模仿turbo c的圖形庫)http://www.easyx.cn ,用它寫一些貪吃蛇、掃雷這類有圖形界面的游戲來練手。 當時學的時候就很好奇為什么調用這些函數就能繪制圖形,后來從網上了解到了Windows編程,于是從淘寶淘了本《Windows程序設計》看了起來,當時看的時候還有點吃力。
趁著大一結束后的那次暑假我看完了王爽老師編寫的《匯編語言》,對計算機內存、CPU等底層方面的知識有了更深一層對的了解后,才重新拾起《Windows程序設計》。當時大二也開始學C++了,還記得“亮歐巴”教完譚浩強寫的C++,還不能真正理解面向對象的意義,我在直接用Win32API寫窗口程序的時候也感覺到要做很多重復工作,寫很多模板代碼(但當時自己完全不知道怎么用C++去封裝Win32API),于是在網上找了些資料,還記得有一位大神出的視頻里面講了MFC的封裝原理后,我自己才試著封裝了Win32API(當然沒使用MFC的消息映射機制,直接用了C++的虛函數多態),之后才明白C++的誕生是計算機工業發展的必然。學完后立馬花了2個多月的時間寫了個瀏覽器(為了應付學校的考試,也為了寒假回家過個好年,無奈拖長戰線),當然網頁顯示直接使用MFC封裝好的CHtmlView,這其中80%的時間都花在寫界面上,當時還不知道開源社區有封裝好的MFC控件,也不知道有CBitmapButton這類東西,完全自己封裝,最終寫出來的界面還賊TM丑,其實這也歸結于當時不會PS,搞得后來很多功能都不愿完善了。
最終我在網上了解到DirectUI這項技術,雖然微軟沒有為開發者提供技術支持,但網上的總有一大批大牛人物敢于挑戰。
下面我以開源與否列舉幾個知名的。
開源界面庫
DuiLib
首先要說的就是大名鼎鼎的DuiLib,國內很多大小公司都在使用該界面庫,比如華為網盤,騰訊微信,百度殺毒 and so on。。。這個庫是借鑒了國外的大牛Bjarke Viksoe寫的Windowless庫。據說DuiLib是國內第一個開源的DirectUI界面庫,有很多界面庫也是基于DuiLib二次開發的。隨著時間的洗禮,很多其他界面庫都慢慢銷聲匿跡了,DuiLib算是活的最好的。下面是我以前寫過的幾個小程序。
RingSdk
這是國內的前輩自己寫的類庫,這里給出前輩對RingSdk的介紹http://blog.csdn.net/ringphone/article/details/2911244
金山界面庫BKWin
這是金山公司開源的一款界面庫,相對個人維護的界面庫而言,是更可靠的。
相關鏈接:http://code.ijinshan.com/index.html
上面三個界面庫可以說是國內最知名的開源界面庫,其他很多界面庫都是來源于這三個界面庫(有些庫只是將名字改改,就自立一派,( ﹁ ﹁ ) ~→真不想吐槽天朝的盜版能力)
商業庫
UIPower
老貴的一款商業界面庫,但聽說產品確實不錯,也有很多知名企業使用他們的界面庫,比如:招商銀行,瑞星殺毒,農業銀行,中信證券… 前期華為網盤也是使用這個界面。貌似還能跨平臺(用不起,也就無法考證),公司老總還親自出了一系列相關視頻,上個月闕總還到DuiLib交流群宣傳他們公司的產品,O(∩_∩)O~~。
公司官網:http://www.uipower.com
迅雷Bolt
Bolt界面引擎是迅雷公司從2009年開始開發的第四代界面庫。迅雷7是首個采用該引擎成功開發的產品,目前迅雷旗下大部分客戶端產品都基于該引擎開發,并穩定運行于超過3.5億臺PC上。
文檔方面也比較齊全,唯一的遺憾是閉源。
http://bolt.xunlei.com/
Skin++
貌似是UIPower之前的產品,最近也沒什么動態了。
LibUIDK
LibUIDK是國際上頂尖的專業開發Windows平臺下圖形用戶界面的開發包,也是國內第一款商業的高級界面開發工具。該開發包基于Microsoft的MFC庫。使用此開發工具包可輕易把美工制作的精美界面用Visual C++實現,由于LibUIDK采用所見即所得的方式創建產品界面,所以極大的提高了產品的開發速度,并大大增強圖形用戶界面(GUI)的親和力。LibUIDK還可以使您的軟件輕松具有當今流行的換膚功能,以提高產品的競爭力。
Flash4UI
Flash4UI 可以讓普通的C++應用程序使用flash作為UI,從而使UI開發變的極其輕松。
通過flash的超炫效果,可以使軟件提升幾個檔次。
不過Flash技術日漸甚微,這或許也不是最好的選擇。
clayui
現在支持的系統包括android,windows,wince,linux。clayui的特點是能實現各種2D,3D動畫,一些WPF,FLEX才能實現的界面效果,通過clayui可以很方便的實現。
clayui的底層渲染支持純軟件渲染,d3d,opengl es硬件加速渲染,您可以根據自身的需求選擇合適的渲染方式,使您界面的用戶體驗達到最佳效果。
clayui自帶的界面編輯系統使您可以很容易的創建界面布局,編輯各種動畫效果,徹底實現界面與邏輯的分離,您可以很容易的實現動態換膚,動態換布局,動態更換動畫效果。
DSkinLite
DSkinLite界面庫如其名稱“lite”一樣,是一款輕量級的C++界面庫。未使用復雜的Hook操作,僅使用替換窗口過程的方式(SubclassWindow)來處理控件界面繪制。使用XML文件管理GDI資源如顏色,字體,圖片,并描述界面構成, 同時UIEASY首次創造性的將界面構成元素抽象為線條元素,矩形元素,圖片元素,文本元素,并提供相應規則來使用這些元素“組合” 界面。這極大的提高了界面庫產品的靈活性,使得界面庫產品可以隨意構造出多種多樣的控件界面。
官網:http://www.uieasy.cn/
codejock
國外的一個提供MFC控件,COM組件技術支持的公司,這個公司提供很多界面方面的支持。三星,惠普,eBay,福特等國際公司都和他有過合作。
http://www.codejock.com
魔方界面庫
不知道跟軟媒有什么關系,看軟媒魔方的界面像是用了這個庫。
http://www.muilib.com/
總結
以上是生活随笔為你收集整理的Windows C++界面库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.Windows 界面技术发展现状
- 下一篇: MVC架构下,使用NPOI读取.DOCX