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