VC MFC 换肤 SkinSharp

【VC皮肤】SkinSharp 1.0.6.6的使用

https://blog.csdn.net/ypist/article/details/8536873

SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件。
SkinSharp作为换肤控件,只需要在您的程序中添加一行代码,就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功能以及Vista透明边框特效。
网站地址:http://www.skinsharp.com/

在这里插入图片描述
个人测试:Windows 7系统、Visual Studio 2008 SP1 环境
步骤一:新建基于对话框的工程,本次测试在VS2008SP1下,工程名任意;
步骤二:将换肤库头文件和链接库文件(SkinH.h, SkinHu.lib)拷贝到工程的目录下;
步骤三:在工程的stdafx.h头文件,添加以下代码:

在这里插入图片描述
步骤四:在工程的对话框初始化函数里面添加以下代码,加载皮肤:
在这里插入图片描述
步骤五:编译下工程,产生Debug或Release文件夹,把DLL文件(SkinHu.dll)和皮肤文件(skinh.she)拷贝到此。好,可以运行程序了。效果如下:
在这里插入图片描述
程序发布:
目前官方还未给出打包功能,继续关注之。对于上面的截图所示的方法发布也可以,虽然带了个DLL,但是不必去注册的,简单多了。

PS:个人感觉,一款轻巧的皮肤库,虽然不是免费的,但是试用版没有类似SkinCrafter之类的注册窗口,并且没有过于“碍眼”的标志,此SkinSharp只有一个小衣服的logo图标而已,重要的不是这点,而是个人版很便宜。虽然目前皮肤包不多,但是都还不错,更多QQ类似的皮肤效果。关于内存占用方面,不会消耗太多。

注意:您可以在任意代码段调用接口,推荐在程序加载时进行调用。加载换肤后,程序关闭时,无需调用卸载皮肤接口,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;
}

1

注意:ShinH支持的是多字节编码。

       SkinHu支持的是Unicode编码。

注:Unicode的只要将上文讲到的SkinH.dll、SkinH.lib替换成SkinHu.dll、SkinHu.lib

支持x64吗
果然和skin++一样,只流出了32位的

6. SkinSharp 并非COM组件,仅以标准的动态或静态链接库的形式存在,SkinSharp无需进行系统注册,直接使用!

7. SkinSharp 完全支持Unicode,提供多种编码格式,支持静态库链接,与客户程序可以进行无缝整合!支持绝大多数第三方控件的完美换肤!界面与业务逻辑彻底分离!
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值