几行代码轻松让你的界面与众不同(for vc)
2007-10-19 15:22
357 查看
[align=left]前段时间时间写的“几行代码轻松让你的界面与众不同(for vb)“得到了很多人的肯定,深感欣慰,感觉自己的努力没有白费,趁热打铁,利用业余时间做出了vc版的皮肤空间供大家使用,有了前面的基础,感觉比做vb版的要轻松多了,一并也发出来供大家使用,使用中如果出现什么问题,尽管提出来,有可能的话,我会发布新版本来解决大家提出来的相关问题。下面是皮肤控件的相关说明,在说明中使用的动态调用的方法,如果你喜欢静态调用,我也为你提供了静态库。[/align]
[align=left] [/align]
[align=left]一、皮肤组成:[/align]
[align=left]本皮肤包含3个文件,其中2个文件(skinvariant.dll,skinres.dll)为皮肤相关文件,你需要要将这2个文件拷贝到你工程的文件夹里,还要有一个文件是vc支持库文件msvcrtd.dll,需要将其拷贝到系统目录里面(system32),否则你的皮肤将不起作用。[/align]
[align=left] [/align]
[align=left]二、操作步骤(动态加载dll的使用说明):[/align]
[align=left] [/align]
[align=left]1.在你的工程里新建一个头文件(skin.h)。[/align]
[align=left]2.将下面的代码拷贝到你的头文件中。[/align]
[align=left]#ifndef skinvariant_h_1[/align]
[align=left]#define skinvariant_h_1[/align]
[align=left]#include "stdafx.h"[/align]
[align=left]BOOL LoadSkin(char szPath[128],char szUser[128],char szPass[128]);[/align]
[align=left]BOOL UnLoadSkin();[/align]
[align=left]typedef BOOL (*pSetSkin)(char szPath[],char szUser[],char szPass[]);[/align]
[align=left]typedef BOOL (*pClearSkin)();[/align]
[align=left]extern HMODULE hDll;[/align]
[align=left] [/align]
[align=left]BOOL LoadSkin(char szPath[],char szUser[],char szPass[])[/align]
[align=left]{[/align]
[align=left] BOOL bResult=false;[/align]
[align=left] if (hDll!=NULL) return bResult;[/align]
[align=left] hDll=::LoadLibrary("skinvariant.dll");[/align]
[align=left] if (hDll!=NULL)[/align]
[align=left] {[/align]
[align=left] pSetSkin SetSkin;[/align]
[align=left] SetSkin=(pSetSkin)::GetProcAddress(hDll,"SetSkin");[/align]
[align=left] bResult=SetSkin(szPath,szUser,szPass);[/align]
[align=left] if (!bResult)[/align]
[align=left] UnLoadSkin();[/align]
[align=left] }[/align]
[align=left] return bResult;[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]BOOL UnLoadSkin()[/align]
[align=left]{[/align]
[align=left] BOOL bResult=false;[/align]
[align=left] if (hDll!=NULL)[/align]
[align=left] {[/align]
[align=left] pClearSkin ClearSkin;[/align]
[align=left] ClearSkin=(pClearSkin)::GetProcAddress(hDll,"ClearSkin");[/align]
[align=left] bResult=ClearSkin();[/align]
[align=left]// BOOL AA=::FreeLibrary(hDll);[/align]
[align=left] hDll=0;[/align]
[align=left] }[/align]
[align=left] return bResult;[/align]
[align=left]}[/align]
[align=left]#endif[/align]
[align=left]3.在需要加载皮肤的地方调用加载函数。[/align]
[align=left] LoadSkin(strPath.GetBuffer(strPath.GetLength()),"Demo","Demo");[/align]
[align=left]4.在需要卸载皮肤的地方调用卸载函数[/align]
[align=left] UnLoadSkin();[/align]
[align=left] [/align]
[align=left]运行你的程序,看看出现了什么变化?是不是所有的控件都变的不一样了,[/align]
[align=left] [/align]
[align=left]本皮肤支持几乎所有的标准控件,包括菜单,工具栏,状态栏等。[/align]
[align=left] [/align]
[align=left]测试环境:vc6+win2000.[/align]
[align=left] [/align]
[align=left]由于此处不能上传,所以将演示程序及控件放到了资源里面,大家到那边去下载吧,地址是 http://download.csdn.net/source/266415 [/align]
[align=left] [/align]
[align=left]一、皮肤组成:[/align]
[align=left]本皮肤包含3个文件,其中2个文件(skinvariant.dll,skinres.dll)为皮肤相关文件,你需要要将这2个文件拷贝到你工程的文件夹里,还要有一个文件是vc支持库文件msvcrtd.dll,需要将其拷贝到系统目录里面(system32),否则你的皮肤将不起作用。[/align]
[align=left] [/align]
[align=left]二、操作步骤(动态加载dll的使用说明):[/align]
[align=left] [/align]
[align=left]1.在你的工程里新建一个头文件(skin.h)。[/align]
[align=left]2.将下面的代码拷贝到你的头文件中。[/align]
[align=left]#ifndef skinvariant_h_1[/align]
[align=left]#define skinvariant_h_1[/align]
[align=left]#include "stdafx.h"[/align]
[align=left]BOOL LoadSkin(char szPath[128],char szUser[128],char szPass[128]);[/align]
[align=left]BOOL UnLoadSkin();[/align]
[align=left]typedef BOOL (*pSetSkin)(char szPath[],char szUser[],char szPass[]);[/align]
[align=left]typedef BOOL (*pClearSkin)();[/align]
[align=left]extern HMODULE hDll;[/align]
[align=left] [/align]
[align=left]BOOL LoadSkin(char szPath[],char szUser[],char szPass[])[/align]
[align=left]{[/align]
[align=left] BOOL bResult=false;[/align]
[align=left] if (hDll!=NULL) return bResult;[/align]
[align=left] hDll=::LoadLibrary("skinvariant.dll");[/align]
[align=left] if (hDll!=NULL)[/align]
[align=left] {[/align]
[align=left] pSetSkin SetSkin;[/align]
[align=left] SetSkin=(pSetSkin)::GetProcAddress(hDll,"SetSkin");[/align]
[align=left] bResult=SetSkin(szPath,szUser,szPass);[/align]
[align=left] if (!bResult)[/align]
[align=left] UnLoadSkin();[/align]
[align=left] }[/align]
[align=left] return bResult;[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]BOOL UnLoadSkin()[/align]
[align=left]{[/align]
[align=left] BOOL bResult=false;[/align]
[align=left] if (hDll!=NULL)[/align]
[align=left] {[/align]
[align=left] pClearSkin ClearSkin;[/align]
[align=left] ClearSkin=(pClearSkin)::GetProcAddress(hDll,"ClearSkin");[/align]
[align=left] bResult=ClearSkin();[/align]
[align=left]// BOOL AA=::FreeLibrary(hDll);[/align]
[align=left] hDll=0;[/align]
[align=left] }[/align]
[align=left] return bResult;[/align]
[align=left]}[/align]
[align=left]#endif[/align]
[align=left]3.在需要加载皮肤的地方调用加载函数。[/align]
[align=left] LoadSkin(strPath.GetBuffer(strPath.GetLength()),"Demo","Demo");[/align]
[align=left]4.在需要卸载皮肤的地方调用卸载函数[/align]
[align=left] UnLoadSkin();[/align]
[align=left] [/align]
[align=left]运行你的程序,看看出现了什么变化?是不是所有的控件都变的不一样了,[/align]
[align=left] [/align]
[align=left]本皮肤支持几乎所有的标准控件,包括菜单,工具栏,状态栏等。[/align]
[align=left] [/align]
[align=left]测试环境:vc6+win2000.[/align]
[align=left] [/align]
[align=left]由于此处不能上传,所以将演示程序及控件放到了资源里面,大家到那边去下载吧,地址是 http://download.csdn.net/source/266415 [/align]
相关文章推荐
- 几行代码,轻松让你的界面与众不同(for vb)
- 轻松实现类VC界面(停靠窗口)
- 轻松实现类VC界面(停靠窗口) (转载)
- 轻松实现类VC界面(窗口停靠)
- VC界面登陆代码
- 几行代码轻松搞定网页的简繁转换
- 几行代码轻松搞定网页的简繁转换
- 几行代码轻松搞定网页的简繁转换
- HTML5游戏实战:代码都不用敲几行,全图形界面制作弹珠台游戏!
- VC++ 修改代码改变界面布局,可是编译后界面没有改变的解决方法
- 几行代码轻松搞定网页的简繁转换(转载)
- 几行代码轻松搞定网页的简繁转换
- 几行代码轻松搞定网页的简繁转换
- viewpager 3D旋转 几行代码轻松搞定
- 几行代码便可实现VISTA软件界面
- 几行代码轻松搞定网页简繁转换
- 轻松实现类VC界面(窗口停靠)
- 轻松实现类VC界面(窗口停靠)
- 轻松实现类VC界面(停靠窗口) (转载)
- 利用属性动画轻松实现 Android TV 游标动画,你缺的是几行代码