在我的功能实现之前,我会先去找分析别人的产品大概是怎么做成的。已经存在的各种资源。
在PC Camera version2.0的UI界面制作之前,我去网上找了很多关于美化UI界面的东西。我在网上找的可用的基本资源和下面这位仁兄写的基本一致,所以转载他的部分文字于此。
************************************************** o(∩ 转_ 载∩)o *********************************************
用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上做就好了。
************************************************** o(∩ 转_ 载∩)o *********************************************