SkinSE是一款真正意義上適合軟件界面開發(fā)的C++界面庫。采用XML管理GDI資源(如:圖片、字體、顏色等),最大程度將界面與邏輯分開,讓程序員有更多的時間去進行軟件內部的邏輯處理。SKINSE擴展了非常豐富的API接口,兼容其他界面控件,使界面開發(fā)更加靈活、高效。SkinSE只用到了windows幾個底層的核心庫,沒有用到(MFC/ATL等第三方庫),采用純API編寫,采用C語言導出方式,增強可移植性,可以用于多種計算機語言。
1.SKINSE內部沒有完全采用HOOK攔截窗口的機制,主要采用子類化控件,修改窗口過程函數的方式進行換膚。但是內置HOOK,可以動態(tài)設置HOOK,保證了SKINSE在整理構架上的靈活性。
2.SKINSE內置DirectUI繪制思想,將界面繪制元素抽象成圖片、文本、矩形區(qū)域、線條、動畫,并且內置EventItem、DrawItem繪制機制??梢詫⑦@些繪制元素以及繪制機制組合開發(fā),實現按鈕、單選框、復選框、分組框、Tab控件、動畫控件等界面控件。
3.SKINSE提供了非常豐富的API接口,最大限度的讓SKINSE界面庫更加透明化、個性化,讓SKINSE界面庫的使用范圍得到最大延伸。
4.SKINSE在子類化進行控件換膚的時候,盡量不修改控件的默認屬性,最大程度地兼容window標準控件的默認屬性。比如,目前市場上很多界面庫在繪制窗口標題欄的時候,去掉了窗口的WS_CAPTION屬性, 導致GetClientRect、GetWindowRect方法失效,從而加大了界面開發(fā)和設計的難度,當然也導致不能完美支持SDI/MDI等界面框架。
5.SKINSE提供了界面控件動態(tài)布局的特性。省去了程序開發(fā)中最為繁瑣的窗口控件位置的調整。只需要調整一下XML配置屬性,就可以進行完美布局。
6.SKINSE支持BMP、ICO、PNG、JPG等圖片格式,支持皮膚色調變換,提供SKINSE內部的圖像引擎接口。
7.SKINSE支持SDI、MDI等界面框架,支持20余種界面控件,完整兼容window 2000、window2003、window XP、vista、window7當前的主流操作系統(tǒng)。并且支持window平臺的多種計算機語言開發(fā)。