騰訊新產品線:QQ2009, QQ 旋風2,QQ影音等都使用了非常漂亮的界面。一直以為是自己寫的,畢竟QQ2009需要一個安全的環(huán)境以避免外掛的衍生。經過spy++探測,發(fā)現(xiàn)一個TXGuiFoundation,再在網上一搜,搜到了這個東西:
Dskinlite 是一款輕量級的C++皮膚庫,使用XML文件根據(jù)規(guī)則來管理GDI資源如顏色,字體,圖片,并描述界面構成,最大程度的將界面和程序邏輯分離,同時為軟件皮膚更換,換色等提供基礎支持。DSkinLite將界面構成元素抽象為線條元素,矩形元素,圖片元素,文本元素,并提供相應規(guī)則來使用這些元素"組合"界面。DSkinlite開發(fā)團隊有較深的Windows界面開發(fā)的實際經歷,對軟件界面處理頗有心得,致力于將實用,高效,前沿的界面處理技術介紹給廣大開發(fā)人員。
DSkinLite與其他界面庫相比有以下特點:
沒有采用Hook所有進程消息的方式,因此沒有替換系統(tǒng)相關對話框。DSkinLite只是采用MFC,ATL等framework類似的方式,簡單替換窗口過程,截取界面繪制等消息,對應用程序來說基本上是透明的。從這個方面講,DSkinLite是一款輕量級的界面庫。
同時,DSkinLite沒有特別的Frameword的依賴,可以在Win32,MFC,ATL,WTL等環(huán)境中使用。 DSkinLite界面庫使用XML管理GDI資源并配置窗口界面,用戶可以方便的保持界面的一致性,同時可以很方便的構造出更多的窗口樣式
界面庫的高效性。DSkinLite將專注于程序庫的高效性,具體表現(xiàn)在內存占用,界面繪制速度,界面防止閃爍,程序加載圖片資源、解析XML文件的速度等方面,我們做了很多工作,并不斷持續(xù)優(yōu)化。以期望程序各方面表現(xiàn)最為高效的界面程序庫。
DSkinLite 皮膚庫的程序架構考慮到可能出現(xiàn)的界面特效,使得實現(xiàn)諸如透明,漸隱漸顯,動畫等界面特效變得更加容易,目前支持大多數(shù)控件的透明效果,后續(xù)會根據(jù)用戶需求,開發(fā)更多的實用的界面特效。
使用XML配置控件的界面