使用免费界面换肤软件 USkin(VC知识库在线杂志第48期)
作者:thirdwolf
一、介绍
我们都知道,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版所有已知错误。