skinimage.h
来自「网狐棋牌(家园版)最新版本7.1.1源代码,共享组件源码」· C头文件 代码 · 共 150 行
H
150 行
#ifndef SKIN_IMAGE_HEAD_FILE
#define SKIN_IMAGE_HEAD_FILE
#pragma once
#include "SkinControls.h"
//////////////////////////////////////////////////////////////////////////
//GDI 资源接口
interface IGDIResource
{
//增加引用
virtual int LockResource()=NULL;
//减少引用
virtual int UnLockResource()=NULL;
//获取引用计数
virtual int GetReferenceCount()=NULL;
};
//资源句柄接口
interface IGDIResourceHandle
{
//是否绑定
virtual bool IsAttached()=NULL;
//是否有效
virtual bool IsResourceValid()=NULL;
//解除绑定
virtual bool DetchResource()=NULL;
//绑定资源
virtual bool AttachResource(IGDIResource * pGDIObject)=NULL;
};
//////////////////////////////////////////////////////////////////////////
//加载位图结构
struct tagImageLoadInfo
{
//变量定义
UINT uResourceID; //资源 ID
CString strFileName; //文件名字
HINSTANCE hResourceDLL; //资源句柄
//函数定义
tagImageLoadInfo()
{
uResourceID=0;
hResourceDLL=NULL;
}
};
//位图对象类
class SKIN_CONTROL_CLASS CSkinImage : public CImage, public IGDIResource
{
friend class CImageHandle;
//内部变量
private:
int m_nRefCount; //引用计数
bool m_bLoadAlways; //是否常在
tagImageLoadInfo m_LoadInfo; //加载参数
//函数定义
public:
//构造函数
CSkinImage(void);
//析构函数
virtual ~CSkinImage(void);
//接口函数
protected:
//增加引用
virtual int LockResource();
//减少引用
virtual int UnLockResource();
//获取引用计数
virtual int GetReferenceCount() { return m_nRefCount; }
//功能函数
public:
//是否设置加载信息
bool IsSetLoadInfo();
//清除加载参数
bool RemoveLoadInfo();
//获取加载参数
bool GetLoadInfo(tagImageLoadInfo & LoadInfo);
//设置加载参数
bool SetLoadInfo(LPCTSTR pszFileName, bool bLoadAlways=false);
//设置加载参数
bool SetLoadInfo(UINT uResourceID, HINSTANCE hResourceDLL=NULL, bool bLoadAlways=false);
//重载函数
public:
//位图指针
operator CBitmap * () { return CBitmap::FromHandle((HBITMAP)(*this)); }
//绘图函数
public:
//创建区域
HRGN CreateImageRegion(COLORREF cTranColor);
//透明绘画
bool AlphaDrawImage(CDC * pDestDC, int xDest, int yDest, COLORREF crTrans);
//透明绘画
bool AlphaDrawImage(CDC * pDestDC, int xDest, int yDest, int cxDest, int cyDest, int xSrc, int ySrc, COLORREF crTrans);
//透明绘画
bool AlphaDrawImageEx(CDC * pDestDC, int xDest, int yDest, COLORREF crTrans);
//透明绘画
bool AlphaDrawImageEx(CDC * pDestDC, int xDest, int yDest, int cxDest, int cyDest, int xSrc, int ySrc, COLORREF crTrans);
};
//////////////////////////////////////////////////////////////////////////
//位图资源句柄
class SKIN_CONTROL_CLASS CImageHandle : public IGDIResourceHandle
{
//变量定义
protected:
CSkinImage * m_pImage; //位图指针
//函数定义
public:
//构造函数
CImageHandle(CSkinImage * pImageObject=NULL);
//析构函数
virtual ~CImageHandle();
//接口函数
public:
//是否绑定
virtual bool IsAttached();
//是否有效
virtual bool IsResourceValid();
//解除绑定
virtual bool DetchResource();
//绑定资源
virtual bool AttachResource(IGDIResource * pImageObject);
//操作重载
public:
//获取句柄
HBITMAP GetBitmapHandle();
//获取对象
CSkinImage * GetImageObject() { return m_pImage; };
//指针重载
CSkinImage * operator->() { return GetImageObject(); }
};
//////////////////////////////////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?