各种流行的界面换肤控件库比较

用VC做程序的时候,如果对界面样式不满意怎么办?自己从各种控件基类继承,然后自绘么?对高手来说,这虽然不能算是难题,但是仍旧比较麻烦,对新手来说,连看什么书都不好说。那就没有更好的方法么?当然有!这就要用到一类称作“界面换肤”的工具包了。

且看这些工具包有什么作用。当你使用一个界面换肤工具包的后,在不改变代码的基础上(除了使用库函数),你的程序将变成另外一个样子,当然这个样子可以很cool,也可以很poor。下面我们来看看当今有什么好的换肤工具包可以使用。

1、SkinMagic

这个是一个比较强大的换肤工具包,通过在自己的应用程序中包含SkinMagicTrial.dll、 SkinMagicTrial.lib、SkinMagicLib.h和*.smf皮肤文件即可实现界面换肤的功能。另外,它还自带了一个 SkinBuilder,可以制作自己的皮肤文件,并应用到我们自己的应用程序中。它的功能很丰富,有近20个SDK形式的API可以调用,用以辅助换肤功能。它目前的最新版是2.4,可以到它老家下载http://www.appspeed.com,但是下载回来的只是一个试用版。试用版会有所限制,主要表现在:当我们打开添加了皮肤的应用程序的时候,会出现一个未注册的对话框;在SkinBuilder中会有一些限制,如未注册无法导出图片等。当然,这些限制完全可以通过反汇编的方法破解掉,有需要的朋友可以参看我的另一篇文章《关于SkinMagic的破解》。

2、SkinFeature

这个换肤工具也比较不错,完全支持各种开发语言的换肤,皮肤制作工具也很强大,最重要的是完全支持PNG图象格式。从目前来看,一般公司的以png图象格式为流行图象格式,方便了皮肤制作工具的使用。经过测试,稳定性还是不错的。就是发现试用版动态换肤有的时候有花屏现象,不知道正式版是否也有此问题。

3、Skin++

这个换肤工具也比较不错,主要是从它的作用结果看出来的。这个由上海勇进公司开发的控件库现在也有很多版本,可以对应VC从6到8,而且支持其他语言。在它的官方主页上可以下载到最新2.0.1版的DEMO,也因为是DEMO,所以可用的功能少的可怜,只能看看人家的效果了。另外,现在网上有这个版本的破解文件,我没有做测试,不知能不能用。即使假设它能用,但是DEMO版的Skin++没有附带皮肤编辑器,所以其皮肤文件自然也没法自己制作了。

4、AppFace

这也是个不错的换肤工具,附带皮肤编辑器,而且其皮肤编辑器还支持锁定皮肤的使用权限,当然这需要有序列号了。按照这个软件的说法,它在加载皮肤的工作上进行的优化,所以看起来它的执行效率还是不错的。网上可以下载到它的demo版,限制是没有一个安装程序,所以也就没法在发布软件的时候用了,而且开发库appface.dll也有20天的试用限制,目前还没有破解。

5、USkin

这个东西太棒了,而且完全是免费的,也用不着破解,它提供了免费库可以无限制的使用。另外它还配有一个十分专业的皮肤编辑器,用于制作 *.u3类型的皮肤文件。当前的版本是2.2,不过按照官方的说法,现在已经测试并准备发布2.3版了。当然,天下没有免费的午餐,这样一个专业又 cool的软件也是有一些限制的。这体现在它那个专业的皮肤编辑器里面:对于按钮的设计,免费版不支持高亮的效果,另外在我使用的时候,Frame和 ProgressBar都没有Background属性,这样就没法制作自己意愿的皮肤了,这多少是一种遗憾。其实现形式和SkinMagic类似。

6、SkinCrafter

这个软件制作的皮肤效果相当的嚣张,当然也是足够cool了!它的皮肤编辑器也很强大,支持的功能也很多。不过这样嚣张的软件,在限制上更加嚣张了。首先是运行应用程序的时候会弹出一个对话框,其次是在应用程序的标题栏中添加未注册的字符串。这个最新版的破解我还没有找到,但是较低的 1.8.2版的破解补丁我还是有的。另外,这个似乎对Windows2000的支持很不好,运行时会出现内核错误,而在Windows XP上则没问题。

7、ActiveSkin

这个工具是用ActiveX组件技术实现的,在添加初始化代码的时候稍微有些复杂,而且使用方法也和之前的各种不太相同。它依赖% windir%/system32/activeskin.ocx来工作,不过这个ocx组件已经被破解了。它的功能也比较不错,只是其皮肤编辑器不支持丰富的控件,记忆中连ProgressBar都不能支持,不知道是不是demo的问题(破解只能使其不出现未注册对话框)。

8、DirectSkin

这个是由WindowBlind的那个公司(www.stardock.com)开发的,实现方法也是采用组件的方式,网上可以下到demo版,不提供皮肤编辑器,另外限制也比较多。关于它,我没有做过多的试验。

以上都是一些比较成熟的换肤工具,它们都提供了不错的定制方案,有的可以添加声音,有的可以支持alpha混合,有的可以支持动画,有的还可以支持直接从WindowBlind的皮肤导入,反正是五花八门,争奇斗艳。

另外还有一个比较小型的,某种程度上说还不成熟的换肤工具,比如SkinLoad、LibUIDK等。

要是让我做个总结的话,如果有一种结合了Skin++的多平台、SkinCrafter的皮肤编辑器、USkin的免费理念和SkinMagic的实现形式,那将是一个十分强大换肤工具。另外,如果有更多的高手可以写写如何自己制作换肤工具的话,对于想要学习的人来说,将是多么可贵的财富呵~

不过没有也没有关系,将来在WPF上做就好了。

  • 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、付费专栏及课程。

余额充值