首先要说的是这是一篇老文章,不过公司最近正在研发Windows上的软件,界面长得一般般,界面制作人员制作得蛮痛苦,而且还是让设计人员觉得粗糙,于是我有稍微关注了一下善于界面控制库这玩意儿。

我承认我是好奇心比较重的人,很容易对新接触的东西产生好奇心,当然了,这个不代表对旧事物就不感兴趣了,我同时有点怀旧,准确地说是对大部分事物都有三分热度而对部分事物有十分热度的怪动物。

我已经有很多名号了,比如流氓东,所以我也不在意再多一个"好奇东"或者是"怪怪东"之类的。

以下是转载的内容:

用 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、Skin++

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

3、AppFace

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

4、USkin

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

5、SkinCrafter

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

6、ActiveSkin

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

7、DirectSkin

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

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

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

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

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