首页 > 代码库 > [MFC美化] SkinSharp使用详解2-SkinH.h函数介绍

[MFC美化] SkinSharp使用详解2-SkinH.h函数介绍

 

SkinSharp功能强大,该皮肤库支持完全多种颜色改变等。

下面是静态链接库时的SkinH.h头文件:

/*在Stdafx.h文件中加入如下语句
#include "SkinH.h"
#pragma comment(lib, "Detours.lib")
#pragma comment(lib, "SkinH_ST.lib")

**************** 根据编译选项在链接选项中做如下设置 ***********
下表显示根据要使用的运行时库应忽略的库。
若要使用第一行运行时库    请忽略第2行的这些库 
单线程 (libc.lib) 
libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多线程 (libcmt.lib) 
libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多线程 (msvcrt.lib) 
libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
调试单线程 (libcd.lib) 
libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
调试多线程 (libcmtd.lib) 
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的调试多线程 (msvcrtd.lib) 
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
**************************************************************/
#ifndef SKIN_H
#define SKIN_H

///ERROR CODE//////////////////////// 
#define        SRET_OK                    0
#define        SRET_ERROR                1
#define        SRET_ERROR_FILE            2
#define        SRET_ERROR_PARAM        3
#define        SRET_ERROR_CREATE        4
#define        SRET_ERROR_FORMAT        5
#define        SRET_ERROR_VERSION        6
#define        SRET_ERROR_PASSWORD        7
#define        SRET_ERROR_INVALID        8
//////////////////////////////////////

//接口列表
extern "C"
{
     /*
        功能:    静态库初始化
        返回值:    成功返回0, 失败返回非0
     */
    int __stdcall SkinH_Init(HINSTANCE hInstance);


    /*
        功能:    静态库卸载
        返回值:    成功返回0, 失败返回非0
    */
    int __stdcall SkinH_Free();


    /*
         功能:    加载程序当前目录下的文件名skinh.she皮肤进行换肤
         返回值:    成功返回0, 失败返回非0
     */
    int __stdcall SkinH_Attach();
    

    /*
        功能:    加载指定路径的皮肤进行换肤
        返回值: 成功返回0, 失败返回非0
    */
    int __stdcall SkinH_AttachEx(
                        LPCTSTR strSkinFile,    //皮肤文件路径
                        LPCTSTR strPassword        //皮肤密钥
                        );

    /*
        功能:    加载指定路径的皮肤进行换肤并指定相应的色调,饱和度,亮度
        返回值: 成功返回0, 失败返回非0
    */
    int __stdcall SkinH_AttachExt(
                        LPCTSTR strSkinFile,    //皮肤文件路径
                        LPCTSTR strPassword,    //皮肤密钥
                        int nHue,                //色调,    取值范围0-360, 默认值0
                        int nSat,                //饱和度,    取值范围0-256, 默认值0
                        int nBri                //亮度,    取值范围0-256, 默认值0
                        );
    
    /*
        功能:    加载指定资源进行换肤并指定相应的色调,饱和度,亮度
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_AttachRes(
                        LPBYTE    pShe,            //资源皮肤数据指针
                        DWORD    dwSize,            //资源皮肤数据长度
                        LPCTSTR strPassword,    //皮肤密钥
                        int nHue,                //色调,    取值范围0-360, 默认值0
                        int nSat,                //饱和度,    取值范围0-256, 默认值0
                        int nBri                //亮度,    取值范围0-256, 默认值0
                        );

    /*
        功能:    加载指定皮肤资源进行换肤并指定相应的色调,饱和度,亮度
        返回值: 成功返回0, 失败返回非0
    */
    int __stdcall SkinH_AttachResEx(
                        LPCTSTR lpName,            //资源名
                        LPCTSTR lpType,            //资源类型
                        LPCTSTR strPassword,    //皮肤密钥
                        int nHue,                //色调,    取值范围0-360, 默认值0
                        int nSat,                //饱和度,    取值范围0-256, 默认值0
                        int nBri                //亮度,    取值范围0-256, 默认值0
                        );

    /*
        功能:    卸载换肤    
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_Detach();

    /*
        功能:    卸载指定句柄的窗体或者控件的皮肤    
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_DetachEx(
                        HWND hWnd                //指定卸载皮肤的窗体或控件的句柄
                        );
    
    /*
        功能:    设置指定窗体的透明度
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_SetWindowAlpha(
                        HWND hWnd,                //窗体的句柄 
                        int nAlpha                //透明度
                        );

    /*
        功能:    调整当前皮肤的色调,饱和度,亮度
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_AdjustHSV(
                        int nHue,                //色调,    取值范围0-360, 默认值0
                        int nSat,                //饱和度,    取值范围0-256, 默认值0
                        int nBri                //亮度,    取值范围0-256, 默认值0
                        );
    
    /*
        功能:    获取指定窗口或控件在nX,nY处的颜色值 
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_GetColor(
                        HWND hWnd,                //指定窗体或控件的句柄
                        int nX,                    //横坐标
                        int nY                    //纵坐标
                        );
    
    /*
        功能:    指定窗体和控件的换肤类型
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_Map(
                        HWND hWnd,                //指定窗体或控件的句柄 
                        int nType                //换肤类型
                        );

    //换肤类型
    #define TYPE_UNKNOWN                0        //未知类型
    #define TYPE_ANIMATE                1001    //动画控件 
    #define TYPE_CHECKBOX                1002    //复选框
    #define TYPE_COMBOBOX                1003    //组合框
    #define TYPE_COMBOLBOX                1004    //组合下拉框
    #define TYPE_CONTROLBAR                1005    //控件栏
    #define TYPE_DATETIME                1006    //日期控件
    #define TYPE_EDITBOX                1007    //文本框
    #define TYPE_GROUPBOX                1008    //分组框
    #define TYPE_HEADERCTRL                1009    //列头控件
    #define TYPE_HOTKEY                    1010    //热键控件
    #define TYPE_IPADDRESS                1011    //IP地址控件
    #define TYPE_LABEL                    1012    //标签控件
    #define TYPE_LISTBOX                1013    //列表框
    #define TYPE_LISTVIEW                1014    //列表视图
    #define TYPE_MDICLIENT                1015    //MDI客户区
    #define TYPE_MENU                    1016    //菜单
    #define TYPE_MONTHCAL                1017    //月历控件
    #define TYPE_PICTURE                1018    //图片框
    #define TYPE_PROGRESS                1019    //进度条
    #define TYPE_PUSHBUTTON                1020    //普通按钮
    #define TYPE_RADIOBUTTON            1021    //单选框
    #define TYPE_REBAR                    1022    //重组栏
    #define TYPE_RICHEDIT                1023    //富文本框
    #define TYPE_SCROLLBAR                1024    //滚动条
    #define TYPE_SCROLLCTRL                1025    //内置滚动条的控件
    #define TYPE_SPINCTRL                1026    //调节器
    #define TYPE_STATUSBAR                1027    //状态栏
    #define TYPE_TABCTRL                1028    //选择夹
    #define TYPE_TOOLBAR                1029    //工具栏
    #define TYPE_TOOLBARWND                1030    //MFC工具栏窗体
    #define TYPE_TRACKBAR                1031    //滑条控件
    #define TYPE_TREEVIEW                1032    //树形视图
    #define TYPE_WINDOW                    1034    //标准窗体
    #define TYPE_COMCTRL                1036    //通用换肤
    #define TYPE_PAINTCTRL                1037    //通用换肤

    /*
        功能:    设置Aero特效
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_SetAero(
                        int bAero                //1为开启特效,0为关闭特效 
                        );
    

    /*
        功能:    设置Aero特效参数
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_AdjustAero(
                        int nAlpha,                //透明度,   0-255, 默认值0
                        int nShwDark,            //亮度,     0-255, 默认值0
                        int nShwSharp,            //锐度,        0-255, 默认值0 
                        int nShwSize,            //阴影大小, 2-19,  默认值2
                        int nX,                    //水平偏移, 0-25,  默认值0 (目前不支持)
                        int nY,                    //垂直偏移, 0-25,  默认值0 (目前不支持)
                        int nRed,                //红色分量, 0-255, 默认值 -1
                        int nGreen,                //绿色分量, 0-255, 默认值 -1 
                        int nBlue                //蓝色分量, 0-255, 默认值 -1 
                        );
    
    /*
        功能:    设置窗体是否可以移动
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_SetWindowMovable(
                        HWND hWnd,                //窗口句柄 
                        BOOL bMovable            //0为不可移动, 1为可移动
                        );
    
    /*
        功能:    设置控件的背景色(目前仅对单选框, 复选框, 分组框有效)
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_SetBackColor(
                        HWND hWnd,                //控件句柄
                        int nRed,                //红色分量
                        int nGreen,                //绿色分量
                        int nBlue                //蓝色分量
                        );
    
    /*
        功能:    设置控件的文本颜色色(目前仅对单选框,复选框,分组框有效)
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_SetForeColor(
                        HWND hWnd,                //控件句柄
                        int nRed,                //红色分量
                        int nGreen,                //绿色分量
                        int nBlue                //蓝色分量
                        );

    /*
        功能:    用于填充表格或者列表控件数据时,重复绘制影响执行效率问题
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_LockUpdate(
                        HWND hWnd,                //指定窗体或控件的句柄 
                        int bUpdate                //1为锁定绘制,0为解锁绘制 
                        );
    
    /*
        功能:    设置菜单透明度
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_SetMenuAlpha(
                        int nAlpha                //菜单透明度,取值范围 0 - 255
                        );

    /*
        功能:    绘制指定设备上下文的元素
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_NineBlt(
                        HDC hDtDC,                //目标设备上下文
                        int left,                //左上角水平坐标
                        int top,                //左上角垂直坐标
                        int right,                //右下角水平坐标
                        int bottom,                //右下角垂直坐标
                        int nMRect                //元素id
                        );

    /*
        功能:    设置标题菜单栏
        返回值: 成功返回0, 失败返回非0    
    */
    int __stdcall SkinH_SetTitleMenuBar(
                        HWND hWnd,     //窗口句柄
                        BOOL bEnable,    //是否设置 1为设置, 0 为取消 
                        int nTMenuY,     //菜单栏高度
                        int nTopOffs,     //顶部偏移
                        int nRightOffs     //右部偏移
                        );

    
    /*
        功能:    设置控件的字体
        返回值: 成功返回0, 失败返回非0
    */
    int __stdcall SkinH_SetFont(
                        HWND hWnd,        //控件的句柄
                        HFONT hFont        //字体句柄
                        );
        
        
    /*
        功能:    设置控件的字体
        返回值: 成功返回0, 失败返回非0
    */
    int __stdcall SkinH_SetFontEx(
                        HWND hWnd,        //控件的句柄
                        LPCTSTR szFace,    //字体名称
                        int nHeight,    //字体高度
                        int nWidth,        //字体宽度
                        int nWeight,    //字体磅数
                        int nItalic,    //是否斜体
                        int nUnderline,    //是否下划线
                        int nStrikeOut    //是否删除线
                        );

}
#endif

 

[MFC美化] SkinSharp使用详解2-SkinH.h函数介绍