SkinLoad

所属分类:界面编程
开发工具:Visual C++
文件大小:406KB
下载次数:40
上传日期:2008-07-28 18:46:51
上 传 者szmyq
说明:  windwos 平台源代码,程序皮肤代码,vc++6.0
(Windows platform source code, program code skin, vc++ 6.0)

文件列表:
Include (0, 2003-05-25)
Include\SkinLoad.dll (49152, 2003-05-22)
Include\SkinLoad.lib (2470, 2003-05-22)
Include\SkinLoadLib.h (3233, 2003-05-22)
Samples (0, 2003-05-25)
Samples\TestSkinLoad (0, 2003-05-25)
Samples\TestSkinLoad\res (0, 2003-05-25)
Samples\TestSkinLoad\Resource.h (1196, 2003-05-22)
Samples\TestSkinLoad\res\TestSkinLoad.ico (1078, 2003-05-18)
Samples\TestSkinLoad\res\TestSkinLoad.rc2 (404, 2003-05-18)
Samples\TestSkinLoad\SkinLoad.dll (49152, 2003-05-21)
Samples\TestSkinLoad\SkinLoad.lib (2470, 2003-05-18)
Samples\TestSkinLoad\SkinLoadLib.h (3233, 2003-05-22)
Samples\TestSkinLoad\StdAfx.cpp (214, 2003-05-18)
Samples\TestSkinLoad\StdAfx.h (1054, 2003-05-18)
Samples\TestSkinLoad\TestSkinLoad.clw (1784, 2003-05-22)
Samples\TestSkinLoad\TestSkinLoad.cpp (1228, 2003-05-22)
Samples\TestSkinLoad\TestSkinLoad.dsp (4332, 2003-05-18)
Samples\TestSkinLoad\TestSkinLoad.dsw (547, 2003-05-18)
Samples\TestSkinLoad\TestSkinLoad.h (1420, 2003-05-22)
Samples\TestSkinLoad\TestSkinLoad.rc (6422, 2003-05-22)
Samples\TestSkinLoad\TestSkinLoadDlg.cpp (5654, 2003-05-22)
Samples\TestSkinLoad\TestSkinLoadDlg.h (1614, 2003-05-22)
Samples\TestSkinLoad\xp_normal.skin (81216, 2003-05-20)
Skin (0, 2003-05-25)
SkinLoadMaker (0, 2003-05-25)
SkinLoadMaker\SkinLoadMaker.exe (188416, 2003-05-21)
Skin\xp_normal.skin (81216, 2003-05-20)
Skin\xp_silver.skin (81642, 2003-05-22)

SkinLoad使用说明: 方法1:静态链接。需要三个文件:"SkinLoadLib.h","SkinLoad.lib","SkinLoad.dll" 1、添加 "SkinLoadLib.h"、"SkinLoad.lib"文件到工程中 2、在App类中包含头文件: #include "SkinLoadLib.h" 3、在App类的 InitInstance()函数中初始化动态库,加载皮肤文件: InitSkinLoad(GetCurrentThreadId()); LoadSkin("xp_normal.skin"); //可以放在任何地方,如果在不同的文件中,要包含头文件 4、在App类的 ExitInstance() 中卸载动态库,释放使用的资源: ExitSkinLoad(); 说明:这样使用方便,缺点是程序运行时必须保证 SkinLoad.dll 文件存在,否则程序无法运行 方法2:动态加载。只需要一个文件:"SkinLoad.dll" 1、 在App类的 InitInstance()函数中加载动态库。 定义一个变量保存加载的动态库句柄,可以是全局的,也可以是App类的成员变量 HINSTANCE m_hDllSkin; m_hDllSkin = LoadLibrary("SkinLoad.dll"); 2、在App类的 InitInstance()函数中调用初始化函数和加载皮肤文件的函数 if(m_hDllSkin != NULL) { typedef int (* INITSKIN)(DWORD dwThreadId); typedef bool (* LOADSKIN)(char* cPath); INITSKIN pInitSkin = (INITSKIN)GetProcAddress(m_hDllSkin,"InitSkinLoad"); LOADSKIN pLoadSkin = (LOADSKIN)GetProcAddress(m_hDllSkin,"LoadSkin"); if(pInitSkin != NULL && pLoadSkin != NULL) { (*pInitSkin)(GetCurrentThreadId()); (*pLoadSkin)("xp_normal.skin"); } } 3、在App类的 ExitInstance() 中卸载动态库 if(m_hDllSkin != NULL) { typedef bool (* EXITSKIN)(); EXITSKIN pExitSkin = (EXITSKIN)GetProcAddress(m_hDllSkin,"ExitSkin"); if(pExitSkin != NULL) { (*pExitSkin)(); } FreeLibrary(m_hDllSkin); } 说明:这样使用比较麻烦,要手动加载动态库,还要自己获取函数指针再用。但是这样可以 在程序中判断所需的 SkinLoad.dll 动态库是否存在,不至于造成程序无法运行

近期下载者

相关文件


收藏者