由于项目原因,需要对MFC界面进行美化,然后问大叔和度娘要了相关资源,以下主要是从实用角度介绍Skin Magic这个皮肤的其中一种用法。
资源列表如下(楼主自己看了,觉得比较重要的两个)。
1. http://blog.csdn.net/robinvanpersie/article/details/7896435
2. http://blog.csdn.net/nonecode/article/details/7952065
代码编写需要以下几个步骤:
1. 创建未皮肤化的MFC界面工程(本例以基于对话框的程序为例子);
2. 将Skin Magic动态库相关文件拷贝到工程目录;
3. 在PrjName.h中(非PrjNameDlg.h)添加
#include "SkinMagicLib.h"
#pragma comment(lib, "SkinMagic.lib")
4. 在PrjName.h中初始化函数添加
VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), _T("SCRIBBLE"), NULL, NULL));//初始化SkinMagic
VERIFY(1 == LoadSkinFile(_TEXT("corona.smf")));//加载皮肤文件
if(LoadSkinFromResource(AfxGetInstanceHandle(),(LPCTSTR)IDR_SKINMAGIC1, "SKINMAGIC"))
{ //上面的函数的第二个参数IDR_SKINMAGIC1是自己添加到工程中的资源,下面还会提到。
//设置对话框默认皮肤
SetDialogSkin("Dialog");
}
5. 在PrjName.h中重载函数
BOOL PrjName::ExitInstance(void)
{
ExitSkinMagicLib();
return 0;
}
6. 注意点:程序关于宽字符unicode解决,可以关闭unicode(方法之一)
7. MFC界面皮肤美化结果对比
8. 本文完整工程示例下载链接:http://download.csdn.net/detail/cimage/6278509