VC模仿超炫QQ界面的实现
2008-09-01 19:25:44 来源:WEB开发网2.加载换肤库
做好基本框架后,界面还是很土,运行效果难以让人满意,于是我们接下来可以加载换肤库,初步改变程序的界面外观了。
将先前准备好的skinBeauty.dll库放在项目的运行目录,在项目的目录放入SkinBeautyExport.h文件和SkinBeauty.lib文件,以便稍后引入并调用函数接口。(一般DLL库的调用分成静态调用和程序运行期间动态调用2种,关于这两种的区别,可参考其他文章。这里,我们将选用静态调用的方式实现)
在适当的位置添加引入库的声明,这里我们选择在stdafx.h文件里面添加:
//inside stdafx.h
在项目得初始化位置(这里选择在项目的创建实例cpp文件里面,BeautyQQ.cpp的CBeautyQQApp::InitInstance()函数的开始,一般都可以在此加载)加入皮肤加载的代码:
//SkinBeauty Lib Call
#include "SkinBeautyExport.h"
#pragma comment(lib,"SkinBeauty.lib")BOOL CBeautyQQApp::InitInstance()
从上面可知,我们先用GetModuleFileName()获取加载皮肤的路径,然后调用提供的函数接口SkinLoad()实现换肤库的加载。而SkinLoad()函数的参数也比较容易理解,就是皮肤所谓位置的路径。它的原型可以在头文件找到:
{
CString exeFullPath;
CString strFilename;
int nLen = GetModuleFileName(NULL, exeFullPath,MAX_PATH);
CString strPath(exeFullPath);
strPath = strPath.Left(strPath.ReverseFind(''));
strFilename = strPath +_T("eautyQQ.bsk");
SkinLoad(THCAR2char(strFilename.GetBuffer(0)));
......
}//load the skin with a skin-file from a path.
至此,已经完成换肤库的加载了。运行看看效果是不是眩了很多,呵呵。
//[IN]:absolute file path
BOOL SkinLoad(char* szSkinPath);
更多精彩
赞助商链接