一、介紹
我們都知道,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()
最後在退出前調用 USkinExit即可.
{
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;
}
int CSDIApp::ExitInstance()
{
USkinExit();
return CWinApp::ExitInstance();
}
四、更新歷史
1.免費全新的SkinBuilder2.0.獨創國內唯一完善的MDI模式的SkinBuilder,支持用戶自定義皮膚對象!
2.重組核心架構,更快捷高效,更強的擴充.
3.新增的繪制模式選項。獨有半透明效果支持!!!
4.皮膚對象支持消息事件!用來做Winamp太簡單了!
5.文檔完善齊全!
6.擁有版權證明!大家可以放心使用.
7.修正1.0版所有已知錯誤。