一、介紹
我們都知道,Skin以前是一項比較難的技術。但至從WindowsXP推出以來,Skin或者說Theme變得很普遍。雖然WindowsXP可以支持Theme,但當我們改變WindowsXP的風格時,所有支持WindowsXP風格的應用程序都變成一樣的風格,如何讓我們的軟件不僅具備Skin,而且要靓麗更吸引人更有個性更加與重不同呢。這裡我給大家推薦一款換膚軟件USkin。
為什麼要使用USkin?
1.節省您的開發時間。您不必花太多的精力在界面美化上。只需完成軟件功能,加入3行代碼即可實現換膚功能。
2.美化軟件界面。
3.支持顏色主題。一個皮膚當100個用。
4.免費。不用花一分錢就能擁有換膚功能。
5.同樣提供免費的皮膚編輯器。您可以自己DIY出個性界面。
圖一 USkin界面效果
圖二 USkinBuilder界面 二、USkin特性
支持20多種Windows標准控件
支持文件、顏色、打印、字體等標准對話框
支持第三方/自定義控件
支持所見即所得的皮膚文件編輯
支持MDI/SDI/Dialog風格的應用程序
支持WindowsBlind皮膚文件導入,多達萬個現成皮膚供您使用
支持顏色主題,一套皮膚可以演變成多種皮膚 *
支持多種編程語言
支持多線程
支持動態換膚
支持所有彈出菜單,包括Edit控件右鍵彈出菜單
只需三行代碼即可實現換膚
支持ListView/TreeVIEw等控件滾動條換膚
皮膚資源文件所占空間小 三、如何使用代碼
第一步,包含USkin.h頭文件.
#include "uskin.h"
第二步在
InitInstance
函數裡調用
USkinInit.
BOOL CSDIApp::InitInstance() { InitCommonControls(); CWinApp::InitInstance(); if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // Init USkin lib and load media skin file USkinInit(NULL,NULL,_T("media.u3")); SetRegistryKey(_T("Local App")); LoadStdProfileSettings(4); CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CSDIDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CSDIVIEw)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); this->RegisterShellFileTypes(); TCHAR sz[500]; ::GetModuleFileName(NULL,sz,500); AfxMessageBox(sz); CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); if (!ProcessShellCommand(cmdInfo)) return FALSE; m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); //if you want do your own subclass,call USkinInit here //USkinInit(NULL,NULL,_T("media.u3")); return TRUE; }
最後在退出前調用
USkinExit
即可.
int CSDIApp::ExitInstance() { USkinExit(); return CWinApp::ExitInstance(); }
四、更新歷史
1.免費全新的SkinBuilder2.0.獨創國內唯一完善的MDI模式的SkinBuilder,支持用戶自定義皮膚對象!
2.重組核心架構,更快捷高效,更強的擴充.
3.新增的繪制模式選項。獨有半透明效果支持!!!
4.皮膚對象支持消息事件!用來做Winamp太簡單了!
5.文檔完善齊全!
6.擁有版權證明!大家可以放心使用.
7.修正1.0版所有已知錯誤。