几行代码轻松让你的界面与众不同(for vc)

本文介绍了一种使用VC实现的皮肤控件方案,通过简单的步骤即可让界面焕然一新。支持多种标准控件,如菜单、工具栏等,并提供动态和静态调用方式。
 
前段时间时间写的“几行代码轻松让你的界面与众不同(for vb)“得到了很多人的肯定,深感欣慰,感觉自己的努力没有白费,趁热打铁,利用业余时间做出了vc版的皮肤空间供大家使用,有了前面的基础,感觉比做vb版的要轻松多了,一并也发出来供大家使用,使用中如果出现什么问题,尽管提出来,有可能的话,我会发布新版本来解决大家提出来的相关问题。下面是皮肤控件的相关说明,在说明中使用的动态调用的方法,如果你喜欢静态调用,我也为你提供了静态库。
 
一、皮肤组成:
本皮肤包含3个文件,其中2个文件(skinvariant.dll,skinres.dll)为皮肤相关文件,你需要要将这2个文件拷贝到你工程的文件夹里,还要有一个文件是vc支持库文件msvcrtd.dll,需要将其拷贝到系统目录里面(system32),否则你的皮肤将不起作用。
 
二、操作步骤(动态加载dll的使用说明):
 
1.在你的工程里新建一个头文件(skin.h)。
2.将下面的代码拷贝到你的头文件中。
#ifndef skinvariant_h_1
#define skinvariant_h_1
#include "stdafx.h"
BOOL LoadSkin(char szPath[128],char szUser[128],char szPass[128]);
BOOL UnLoadSkin();
typedef BOOL (*pSetSkin)(char szPath[],char szUser[],char szPass[]);
typedef BOOL (*pClearSkin)();
extern HMODULE hDll;
 
BOOL LoadSkin(char szPath[],char szUser[],char szPass[])
{
    BOOL bResult=false;
    if (hDll!=NULL) return bResult;
    hDll=::LoadLibrary("skinvariant.dll");
    if (hDll!=NULL)
    {
        pSetSkin SetSkin;
        SetSkin=(pSetSkin)::GetProcAddress(hDll,"SetSkin");
        bResult=SetSkin(szPath,szUser,szPass);
        if (!bResult)
            UnLoadSkin();
    }
    return bResult;
}
 
BOOL UnLoadSkin()
{
    BOOL bResult=false;
    if (hDll!=NULL)
    {
        pClearSkin ClearSkin;
        ClearSkin=(pClearSkin)::GetProcAddress(hDll,"ClearSkin");
        bResult=ClearSkin();
//      BOOL AA=::FreeLibrary(hDll);
        hDll=0;
    }
    return bResult;
}
#endif
3.在需要加载皮肤的地方调用加载函数。
    LoadSkin(strPath.GetBuffer(strPath.GetLength()),"Demo","Demo");
4.在需要卸载皮肤的地方调用卸载函数
    UnLoadSkin();
 
运行你的程序,看看出现了什么变化?是不是所有的控件都变的不一样了,
 
本皮肤支持几乎所有的标准控件,包括菜单,工具栏,状态栏等。
 
测试环境:vc6+win2000.
 
由于此处不能上传,所以将演示程序及控件放到了资源里面,大家到那边去下载吧,地址是  http://download.youkuaiyun.com/source/266415   
 
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值