查了好几天关于MFC应用程序换肤的资料,经过各种莫名其妙的问题的困扰,现分享一下自己的体会。希望可
以避免一些弯路。另外会在附上一些资源。
环境:Windows 7 + VS2012 + SkinSharp(注:Skin++、USkin、SkinMagic 用法相同)
1. 新建一个工程(工程名:Demo)(比如一个基于对话框的MFC程序)
如图所示,注意不要勾选Use Unicode libraries ,否则可能会出现以下错误:见图
2. 添加相关文件(.h .lib .dll 以及皮肤文件)
下面就以SkinSharp、Skin++、USkin、SkinMagic中的一种(SkinSharp)进行示范,其他三种的操作基本
是大同小异。如图将SkinH.h和SkinH.lib文件导入工程文件的目录中,如下图所示:
请注意VC++6.0和VS2012下工程目录的不同之处,应该是Demo->Demo文件夹下(Demo是工程名),
然后加入工程的Header Files下:
3. 添加必要的代码
3.1 在stdafx.h中添加
#include "SkinH.h"
#pragma comment(lib, "SkinH.lib")
如图:
在BOOL CDemoApp::InitInstance() 函数下写
SkinH_Attach();
这句语句是加载默认的皮肤文件:skinh.she
3.3 试着编译工程,产生Debug文件(或者Release文件)
将以下文件放入Debug目录(工程根目录下的Debug文件夹)中如图:
3.4 再次编译工程即可看到换肤的效果:(添加的是只是skinh.she皮肤文件)
3.5 实现更“自由”的换肤
将SkinH_Attach(); 改为下句
SkinH_AttachEx("../Debug/Skins/Green.she", NULL);
运行效果如下:
3.6 如果出现缺少SkinH.dll, 就将该文件再放到C:WindowsSystem32和C:WindowsSysWOW64文件夹下,
然后重新编译运行就可以了。
4. 资源链接
Skin++、SkinSharp、USkin、SkinMagic以及该例程的代码在如下链接中:
http://download.csdn.net/detail/u011239916/8750419
相关链接:http://www.codeproject.com/Articles/13946/Use-the-Free-USkin-Toolkit-to-Skin-your-Applicatio
以上就是VS2012下MFC对话框应用程序的界面美化,还可以利用皮肤制作软件进行皮肤文件的制作,
让自己的应用程序告别单调,从此焕发生机!如果在运行中出现问题,可以给我留言,可以交流讨论。感
谢您的阅读,如有错误和不妥之处,请指点。Thank you very much!