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