您的位置:首页 > 编程语言

几行代码轻松让你的界面与众不同(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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: