[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
时间: 2024-12-25 00:30:41

[MFC美化] SkinSharp使用详解2-SkinH.h函数介绍的相关文章

[MFC美化] SkinSharp使用详解1-使用方法

需要注意的是: 加载换肤后,程序关闭时,无需调用卸载皮肤接口,SkinSharp换肤库会自己完成清理工作.换肤时无需卸载皮肤,直接调用即可. 其DLL使用方法与前面几种皮肤库用法类似.如下: 1. 将动态库 SkinH.dll和皮肤文件SkinH.she拷贝到程序生成的目录:将 SkinH.h和皮肤文件 SkinH.lib拷贝到工程文件夹下. 2. 在预编译头文件 stdAfx.h中 ,增加两行声明: #include "SkinH.h" #pragma comment(lib, &q

[MFC美化] USkin使用详解-使用方法

该种皮肤库资料很少,用法与前面几种类似. 它主要有:USkin.dll ,USkin.lib,USkin.h和Sakura.msstyles这四个文件.皮肤格式是.u3.SkinBuilder是USkin界面换肤软件.u3文件制作环境 . 以下是摸索出来的用法,如有错误请指正. 一.使用方法 1. 将这四个文件拷贝至相应文件夹下..lib和.h放在工程文件夹,.dll和Sakura.msstyles放到debug文件夹下. 2. 在工程stdafx.h文件中加入USkin.h和USkin.lib

MFC下CSocket编程详解

MFC下CSocket编程详解 分类: C/C++2008-03-13 09:01 34465人阅读 评论(34) 收藏 举报 mfc编程socket服务器socketsstream MFC下CSocket编程详解: 1. 常用的函数和注意事项(详细的函数接口说明请查看MSDN): CSocket::Create 初始化(一般写服务器程序都不要用为好,用下面的 CSocket::Socket 初始化) CSocket::Socket初始化 CSocket::SetSockOpt 设置socket

Redis 详解 (二) redis的配置文件介绍

目录 1.开头说明 2.INCLUDES 3.MODULES 4.NETWORK 5.GENERAL 6.SNAPSHOTTING 7.REPLICATION 8.SECURITY 9.CLIENTS 10.MEMORY MANAGEMENT 11.APPEND ONLY MODE 12.LUA SCRIPTING 13.REDIS CLUSTER 上一篇博客我们介绍了如何安装Redis,在Redis的解压目录下有个很重要的配置文件 redis.conf (/opt/redis-4.0.9目录下

MFC消息映射机制详解

 MFC消息映射机制: 在每个能接收和处理消息的类中,定义一个消息与消息处理函数的映射表,即消息映射表.MFC有一个窗口句柄与C++对象指针的映射表,当窗口收到消息时,消息的第一个参数指明了该消息与哪个窗口句柄相关,通过映射表找到C++对象指针,然后将这个指针传递给应用程序框架窗口类的基类,基类调用WindowProc函数(在wincore.cpp文件中),这是一个虚函数,函数内部调用OnWndMsg函数,消息处理就是在这个函数内完成的,该函数也在wincore.cpp中.OnWndMsg函

MFC绘制图片闪烁详解

用MFC如何高效地绘图             显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题.     而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案.     MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,     只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序.     我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈     我的一些观点.     1.显示的图形为什么会闪烁?             我们的

详解wait和waitpid函数

#include <sys/types.h> /* 提供类型pid_t的定义 */ #include <sys/wait.h> pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回:如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止. 参数status用来保存被收集进程退出时

绝对详解PHP 的imageTtfText()函数

图片处理,是许多程序的功能之一:而文字渲染则是绘图的基本组成部分.PHP通过很多扩展库来支持图片的处理,最常用的还是GD库,通过一系列imagexxx()函数来提供绘图功能.本文专注于非常细小的一点:绘制文字.熟悉Win32的人都知道,TextOut()就可以轻松显示任何文字了,然而到了PHP的世界里,有些事情并不轻松. 1 详细解释imageTtfText()函数 对于PHP绘图初学者,首先遇到的一个问题就是,imageString()这个函数并不支持汉字的绘制.这往往会给入门者当头一棒,不过

详解Spark sql用户自定义函数:UDF与UDAF

UDAF = USER DEFINED AGGREGATION FUNCTION Spark sql提供了丰富的内置函数供猿友们使用,辣为何还要用户自定义函数呢?实际的业务场景可能很复杂,内置函数hold不住,所以Spark sql提供了可扩展的内置函数接口:哥们,你的业务太变态了,我满足不了你,自己按照我的规范去定义一个sql函数,该怎么折腾就怎么折腾! 例如,MySQL数据库中有一张task表,共两个字段taskid (任务ID)与taskParam(JSON格式的任务请求参数).简单起见,