带有///////后面是我写的
它的说明是这样的
0.准备工作:  用产品相应的皮肤编辑软件SkinBeautyStudio编辑好界面各元素皮肤,一般好看的界面都是由图片绘制所成(这里是到其主站下载已有的BeautyQQ.bsk皮肤)。将下载好的换肤开发库(SkinBeauty.dll,SkinBeauty.lib)和接口文件SkinBeautyExport.h准备好,下载地址在本文章后有给出,或自己到www.afe-soft.com上自己下载。
.////这一步已经做好了
1.建立项目:打开VC++,利用向导帮助建立基于MFC的对话框项目BeautyQQ,过程如下
New-> Projects -> MFC AppWizard(exe) -> Dialoag based 其他默认完成建立。简单的修改一下对话框的大小,标题栏名称等,编译一下,////这个也正常
运行一下基本正常,这就算完成了项目的创建工作了。
///////////////////前面没有问题
2.加载换肤库  做好基本框架后,界面还是很土,运行效果难以让人满意,于是我们接下来可以加载换肤库,初步改变程序的界面外观了。
将先前准备好的skinBeauty.dll库放在项目的运行目录,在项目的目录放入SkinBeautyExport.h文件和SkinBeauty.lib文件,以便稍后引入并调用函数接口。(一般DLL库的调用分成静态调用和程序运行期间动态调用2种,关于这两种的区别,可参考其他文章。这里,我们将选用静态调用的方式实现)
////////////////该添的我都添了
在适当的位置添加引入库的声明,这里我们选择在stdafx.h文件里面添加: 
///////////////////////////我也加入头文件了
//inside stdafx.h//SkinBeauty Lib Call 
#include  "SkinBeautyExport.h"
#pragma   comment(lib,"SkinBeauty.lib")  在项目得初始化位置(这里选择在项目的创建实例cpp文件里面,BeautyQQ.cpp的CBeautyQQApp::InitInstance()函数的开始,一般都可以在此加载)加入皮肤加载的代码: BOOL CBeautyQQApp::InitInstance()
{
CString exeFullPath;
CString strFilename;
int nLen = GetModuleFileName(NULL, exeFullPath,MAX_PATH);//////////////////////////
/////////////////////这个位置报错,说GetModuleFileName不能强制转化CString 到char*,怎么回事啊?
///////////////我把这修改了,加了个CString Getbuffer(exeFullPath)就不报错了,但下面还是不行
CString strPath(exeFullPath);
strPath = strPath.Left(strPath.ReverseFind('\\'));
strFilename = strPath +_T("\\beautyQQ.bsk"); SkinLoad(THCAR2char(strFilename.GetBuffer(0)));///这说 函数THCAR2char未声明
......
}  从上面可知,我们先用GetModuleFileName()获取加载皮肤的路径,然后调用提供的函数接口SkinLoad()实现换肤库的加载。而SkinLoad()函数的参数也比较容易理解,就是皮肤所谓位置的路径。它的原型可以在头文件找到: //load the skin with a skin-file from a path.
//[IN]:absolute file path 
BOOL SkinLoad(char* szSkinPath);至此,已经完成换肤库的加载了。运行看看效果是不是眩了很多,呵呵。
顺便说一下的是,官方声称,调用完SkinLoad()载入后,在退出程序前并不需要调用任何卸载函数,换肤引擎将自动实现库的销毁拆装等操作,除非你程序运行中途意愿性的想去掉皮肤外观。
  现在已经完成QQ主界面的外观实现与美化了