VC皮肤库SkinSharp 1.0.6.6的使用

SkinSharp又称Skin#,是Windows环境下一款强大的换肤库。SkinSharp换肤库不是COM组件,无需进行系统注册,仅以标准dll方式存在。
SkinSharp作为换肤工具,只需要在您的程序中添加一行代码,就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功能以及Vista透明边框特效。

文档网址:http://www.skinsharp.com/htdocs/docs.htm

使用方法:
1 前提是已经建立了VC MFC工程
2 将SkinSharp安装包 SkinH_VC/Bin/ 目录下的两个文件:SkinH.h 和 SkinHu.lib 添加到工程目录下 (通常是 *.aps .dsp .vcproj所在的目录)
3 在预编译头文件 stdAfx.h中 ,增加两行声明:
#include "SkinH.h"
#pragma comment(lib, "SkinHu.lib")      //SkinHu.lib是Unicode版本,SkinH.lib是多字节版本
4 在主对话框的 OnInitDialog成员函数中增加换肤命令:
SkinH_Attach();
5 编译project后,将动态库 SkinHu.dll和皮肤文件 SkinH.she拷贝到程序生成的目录 ../Debug
然后运行程序,效果可以看到了

注意:您可以在任意代码段调用接口,推荐在程序加载时进行调用。加载换肤后,程序关闭时,无需调用卸载皮肤接口,SkinSharp换肤库会自己完成清理工作。换肤时无需卸载皮肤,直接调用即可。

去掉SkinSharp小图标的代码:

void EnableSkinSharpMemoryPatch()
{
 HMODULE hSkinBase = GetModuleHandleW(_T("SkinHu.dll"));

 if ( hSkinBase == NULL )
 {
  return ;
 }

 unsigned char *pPatchByte = NULL;
 DWORD dwOldProtect = 0;

 pPatchByte = (unsigned char*)((DWORD)hSkinBase + 0x00021632);
 VirtualProtectEx(GetCurrentProcess(),pPatchByte,4,PAGE_EXECUTE_READWRITE,&dwOldProtect);
 *pPatchByte = 0x50;

 pPatchByte = (unsigned char*)((DWORD)hSkinBase + 0x0000F37F);
 VirtualProtectEx(GetCurrentProcess(),pPatchByte,4,PAGE_EXECUTE_READWRITE,&dwOldProtect);
 *pPatchByte = 0x50;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值