基本介紹
- 中文名:Skin++
- 類型:系統軟體
- 使用技術:軟體界面開發技術
- 特色:編程變得輕鬆自如
特性,實現原理,換膚流程,支持開發工具,
特性
◆ 換膚徹底,支持Windows系統對話框與控制項換膚;
◆ 換膚全面,支持所有的Windows標準控制項;
◆ 支持所有Win32/Win64平台,包括.Net應用程式;
◆ 使用簡單,只需一行代碼實現整體換膚;
◆ 可視設計,提供皮膚設計工具,所見即所得的設計開發環境;
◆ 色調變換,支持皮膚色調變換,每一套皮膚都擁有N種色調風格;
◆ 支持廣泛的開發工具, VC/VB/Delphi/C++Builder/VS. Net/PowerBuilder/E;
◆ 支持流行的Windows作業系統;
◆ 皮膚資源海量,提供方便的皮膚轉換工具,可以將目前主流的皮膚主題轉換成Skin++格式;
◆ 支持Unicode,提供多種編碼格式;
◆ 支持靜態庫連結,與客戶程式可以進行無縫整合;
◆ 支持第三方控制項;
◆ 界面與業務邏輯徹底分離;
實現原理
Skin++屬於第二代的外掛式的界面庫。
Skin++ 提供了SkinBuilder 工具將所有控制項的資源全部設計成為一個獨立的檔案,便於在應用程式外部獨立地進行增刪改操作。
Skin++ 主要採用Hook與子類化技術來實現應用程式的自動換膚。
換膚流程
1、應用程式啟動,載入Skin++庫;
2、執行Skin++載入皮膚檔案API函式;
3、Skin++ 安裝視窗過程等類型Hook,準備截獲應用程式所有視窗的創建事件;
4、Skin++ 收到視窗創建等訊息,根據類名、風格等一些條件來判斷是否對該視窗進行子類化;
5、視窗子類化即可以收到該視窗所有的訊息;
6、根據不同的訊息進行相應的處理。如:WM_PAINT訊息,Skin++對其進行繪圖的操作;
7、繪圖中需要用到圖片、文字、字型等資源即根據ID、名稱等條件到皮膚檔案中去查找;
8、控制項運行過程中,各種界面行為的變化均可通過處理訊息與API函式來進行;
9、控制項銷毀時,Skin++即對其進行反子類化,將Skin++換膚前的訊息過程地址重新設成當前的訊息過程;
10、控制項所有的訊息不再經過Skin++訊息處理函式。控制項執行其默認的視窗訊息處理函式;
11、應用程式退出,Skin++庫被卸載,在卸載之前Skin++獲得通知,Skin++便在內部執行Hook的反初始化與資源檔案的清理。
支持開發工具
支持VC++各種版本:VC6,VC2003,VC2005,VC2008,VC2010,VC2012;
支持VisualStudio. Net各種版本:VisualStudio. Net 2003, VisualStudio. Net 2005, VisualStudio. Net 2008,VisualStudio. Net 2010,VisualStudio. Net 2012;
支持 PowerBuilder 各種版本:PowerBuilder 6.0,7.0,8.0,9.0,10.0,10.5,11.0;
支持 Delphi各種版本:Delphi 4,5,6,7,8,2005,2006;
支持C++ Builder 各種版本:C++ Builder 4,5,6,2006;
支持易語言各種版本。