最近对软件的皮肤产生了一些兴趣,之前拿codejock用了用,很想知道它是怎么实现的,最近找到了SkinTK,国人写的,地址(https://skintool.svn.sourceforge.net/svnroot/skintool)用TortoiseSVN可以将×××下来,包含了四个工程分别是:detours、SkinTK、SkinBuilder、以及一个示例工程Sample1,同时在资源文件中还包含一个已经做好的皮肤12.skn。用了一下,还是很方便的,下面介绍一下。

一、新建一个工程

       可以是单文档、多文档或是对话框。这里以添加一个单文档工程SDISample为例。注意工程的字符集选择多字节字符集。

二、添加皮肤资源到资源视图中。

        将12.skn拷贝到工程的res文件夹下,资源的类型为自定义类型,资源ID为IDR_SKIN1。

三、添加SkinTK.lib库的链接

在stdafx.h文件中添加以下这句:

#pragma comment (lib, _T("SkinTK.lib"))

四、初始化。

在工程文件SDISample.cpp中:

#include "SkinTool.h"(之前将SkinTool.h以及SkinExports.h文件拷贝到工程代码目录下)

在函数BOOL CSDISampleApp::InitInstance()中添加

SkinLoadMemSkin(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_SKIN1), _T("Skin"));

五、将SkinTK.dll(通过编译SkinTK工程生成)拷贝到生成程序的debug目录下

编译运行,生成可执行的程序。如下:

使用SkinTK进行换肤_职场