zoukankan      html  css  js  c++  java
  • [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
  • 相关阅读:
    ajax与Servlet
    Myeclipse快捷键的设置以及默认的编码格式
    bootstrap02导航菜单
    bootstrap01登录小例子
    ajax
    面向对象04异常
    mysql
    Day10 Python基础之特殊函数(八)
    Day9 Python基础之函数基础(七)
    Day8 Python基础之遗漏知识点(六)
  • 原文地址:https://www.cnblogs.com/zwh0214/p/6104549.html
Copyright © 2011-2022 走看看