【C语言】【windows】【入门笔记】 第四课--通用换肤
erbi_lucifer吧
全部回复
仅看楼主
level 10
堕erbi 楼主

一楼度娘……[旋转]



2012年05月04日 03点05分 1
level 10
堕erbi 楼主

简单的来说就是以下效果:
将:
变成:

2012年05月04日 04点05分 2
level 10
堕erbi 楼主

当然还有其他很多效果,只要皮肤文件不同即可……
需要文件:
皮肤文件 skinh.she
动态链接库 SkinH.dll
静态连接库 SkinH.lib
你可以在下载楼找到:https://tieba.baidu.com/p/1497523527 (6楼)

2012年05月04日 04点05分 3
level 10
堕erbi 楼主

将它们放在工程的文件夹里:
程序完成后记得将skinh.she 和 SkinH.dll带上……
而SkinH.lib 只在开发程序的时候有用……[鲁拉]它负责告诉编译器换肤函数在
SkinH.dll里面的哪个地方……
有时候要保证程序在其它操作系统也能够使用,需要把 msvcr100.dll 也带上……

2012年05月04日 04点05分 4
level 10
堕erbi 楼主

先声明函数和连接静态连接库:
extern "C" __dec
lsp
ec(dllimport) int __stdcall SkinH_Attach();
#pragma comment(lib,"SkinH.lib")
最后在主函数里面加上:
SkinH_Attach();//加载当前目录下名为“skinh.she”皮肤
即可……
[拍砖]
2012年05月04日 04点05分 5
level 10
堕erbi 楼主

全部代码:[瀑布汗~]
#include <windows.h>
#include "resource.h"
extern "C" __declspec(dllimport) int __stdcall SkinH_Attach();
#pragma comment(lib,"SkinH.lib")
INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch(uMsg)
{
case WM_INITDIALOG :
{ //初始化的消息
}
break;
case WM_COMMAND : //按钮被按下的消息
{
switch (wParam)
{
case IDOK ://就是新建对话框的时带有的那个 确定 按钮
{
//ID是 IDOK 的按钮被按下
MessageBox(hwndDlg,TEXT("按钮按下"),TEXT("信息"),MB_OK);
}
break;
case IDCANCEL:
{ /
/ID是 IDCANCEL 的按钮被按下,即 取消 按钮 和右上方的 ‘X’关闭程序按钮
EndDialog(hwndDlg, IDCANCEL);//结束对话框
}
break;
default:break;
}
}
default:break;
}
return 0;
}
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
//代码
SkinH_Attach();//加载当前目录下名为“skinh.she”皮肤
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc); //弹出对话框
return 0 ;
}

2012年05月04日 04点05分 6
level 10
堕erbi 楼主

效果:
2012年05月04日 04点05分 7
level 10
堕erbi 楼主

效果:
2012年05月04日 04点05分 8
level 10
堕erbi 楼主

效果:
2012年05月04日 04点05分 9
level 10
堕erbi 楼主

以上…………………………………………………………
下课……[撞玻璃]
/*********************************************************************************************
    / \./ \/\_   I Hand You
  __{^\_ _}_  ) }/^\    A Rose...
 / /\_/^\._}_/ // /
( (__{(@)}\__}.//_/__A___A______A_______A______A____
 \__/{/(_)\_} )\\ \\---v----V-----V--Y----v---Y-----
  (  (__)_)_/ )\ \>
\__/   \__/\/\/ 光影:Erbi_lucifer吧
    \__,--' 时间:2012年5月4日12:25:59
/*********************************************************************************************

2012年05月04日 04点05分 10
level 2
[瞌睡]求更多笔记..
2012年05月25日 16点05分 11
level 10
堕erbi 楼主
下载楼的:https://tieba.baidu.com/p/1497523527
【光影笔记】……
其它以后有时间再继续……[抖胸]
2012年05月25日 16点05分 12
level 8
lz
,这个怎么解决呢
2012年11月01日 11点11分 13
1.你没有这个文件。 2.这个文件没有放在工程目录下 找到这个文件SkinH.lib放入工程的目录下,再编译即可。
2012年11月01日 12点11分
回复 堕erbi 还有第三种情况么,加着呢,不行
2012年11月01日 15点11分
level 8
2012年11月01日 15点11分 14
level 8
[顶]................................
2012年11月07日 11点11分 15
level 1
求教,如何可以不用动态链接库实现呢?我正在研究xp.manifest,目前就是非客户区重画有点问题
2013年04月05日 17点04分 16
level 2
为什么到最后皮肤没换呢。。。。
2013年04月06日 12点04分 17
程序运行的时候文件夹下有没有skinh.she文件?
2013年04月06日 16点04分
level 1
error C2059 语法错误:"字符串"
如果看不清.可以上全图.[乖]
2013年05月29日 09点05分 18
编译器是?你可以尝试使用:int SkinH_Attach();代替试试。
2013年05月30日 06点05分
回复 堕erbi :。嗯..我回去试试看..[开心]
2013年05月30日 07点05分
回复 堕erbi :谢谢.[太开心]
2013年05月30日 07点05分
level 1
敢问大湿这些皮肤怎么做啊
2013年08月17日 10点08分 19
见楼下。
2013年08月23日 05点08分
level 10
堕erbi 楼主

附加:关于皮肤的制作。
下载工具:
[无效] http://pan.baidu.com/share/link?shareid=1130858340&uk=2601968355
压缩包内容:
SkinH_VC使用帮助(含源码).rar
Skinsharp V1.0.6.6各种语言全破解.rar
vc全部函数各自独立的demo.rar
制作皮肤工具.rar
打开皮肤制作工具:
如果需要可以选择一张图片,然后导入打开。
接着,在控件窗口选择要覆盖图片的控件状态。
最后选择框选按钮(工具栏的虚线正方形按钮),在图片上面框选,框选到的将作为该控件的背景。
如:上边框的激活和未激活图像是框选下面这个:
背景是框选这个:
然后菜单--导出皮肤即可。
2013年08月23日 05点08分 20
1 2 尾页