使用免费界面换肤软件 USkin

使用免费界面换肤软件 USkin

 

作者: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版所有已知错误。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目前这方面的软件很多,但大部分都是收费的,不收费大部分又换的不全,对于一个学生来说花钱买是有些奢侈了,所以我一直就想做一个换肤软件提供给学生,让他们做课程设计或毕业设计时能轻易给自己软件美化界面。 但是一直苦于时间有限。工作太忙有时只能在周末或晚上写上两行代码。现在终于成形了本打算开源,但是有些地方还不完善(现只支持VC MFC, Windows Type: Dialog, SDI),所以现在只讲下原理,提供部分源码供感兴趣的人研究。现在发出来与大家共享。 现在商业的换肤软件大部分都是采用的Hook技术(呵呵,猜的,也许采用的更高深的技术)。Hook窗体消息,对窗体消息进行截获最终换成自已的处理方式。所以本人写的SkinMaster也是采用了同样的技术原理。说很简单但做起来有些困难。下面是我做Skin时遇到的问题及处理方式。 1.对于Windows基本控件进行Hook则可完成绘制。 2.对于菜单会制则有些麻烦,程序运行时窗体菜单WM_MEASUREITEM只运行一次,所以会出现在动态换另一套皮肤时菜单项大小不会跟据皮肤改变,解决方法是所有菜单你要动态生成。 3.主窗体的绘制,没啥太深技术就是要处理大量的消息。 4.滚动条的绘制,滚动条全靠Hook消息就没办法完成了,这个东西微软做的不像基本控件那样工作,还要对滚动条的API进行Hook。 先写这些,有时间我会把更详细的方法给大家写出来。下面程序中TestSkin程序提供源码,并完成了按钮等控件的换肤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值