我在看一本王艳平的《Windows程序设计》里面第七章提到了使用SkinMagic美化界面的问题。书上讲的不明不白网上也有各种教程,几天终于自己把SkinMagic应用到了MFC程序中,快哉快哉!!!!
SkinMagic的开发包可以在http://download.csdn.net/source/3292405下载。
一、 打开VC6.0,新建一个MFC基于对话框的应用程序。把工程命名为Skin。
二、 在CSkinAPP中添加:
#include "SkinMagicLib.h"
//注意,如果MFC是动态链接到工程中的,则应该选择SkinMagicLibMD6Trial.lib库
#pragma comment(lib,"SkinMagicTrial.lib") //这一步是添加SkinMagicTrial.lib库文件,如果在这里添加了之后,那么第七步骤就可有可无了,或者是在这里不要这一行,而是用第七步骤中的方法添加库文件。
三、将SkinMagicLib.h,SkinMagicTrial.dll,SkinMagicTrial.lib,和皮肤文件"corona.smf"添加到当前目录;
四、在CSkinApp类的InitInstance()函数创建主窗口之前,就是在此函数开始位置添加:
//===SkinMagic===
//初始化SkinMagic库
VERIFY(InitSkinMagicLib(AfxGetInstanceHandle(),"Skin", NULL, NULL));//此函数的第二个参数 "Skin"是当前工程名
//从资源中加载皮肤文件。也可以用代码“LoadSkinFile("corona.smf")”直接从文件中加载
if(LoadSkinFromResource(AfxGetInstanceHandle(),(LPCTSTR)IDR_SKINMAGIC1, "SKINMAGIC"))
{ //上面的函数的第二个参数IDR_SKINMAGIC1是自己添加到工程中的资源,下面还会提到。
//设置对话框默认皮肤
SetDialogSkin("Dialog");
}
五、 在CSkinApp类中重载虚函数ExitInstance() 添加:ExitSkinMagicLib();
即:BOOL CSkinApp::ExitInstance()
{
ExitSkinMagicLib();
return CWinApp::ExitInstance();
}
六、 修改资源文件:
单击菜单命令Insert/Resource..弹出插入资源对话框;单击按钮”Import“,导入资源皮肤corona.smf到工程中;因为这不是标准资源,所以会弹出自定义资源类型对话框,这里输入SKINMAGIC单击OK按钮。
七、添加库文件支持()//其实如果在第二步骤中有 #pragma comment(lib, "SkinMagicTrial.lib")这句,那么在这里的一步就可以忽略了
选择菜单栏工程/ 设置,在连接—>对象/库模块处,添加库文件SkinMagicTrial.lib。
下面是美化后的对话框效果:
皮肤文件如下:
转 http://hi.baidu.com/gongziya/item/bcc247a413e6a62b8819d3ed