⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hjbitmap.h

📁 基于字符层面的短语比较工具
💻 H
字号:
//HJBitmap.h
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "hjcustombitmap.h"
#include "AFXTEMPL.H"
#define _DDSET_DEF_NODRAW			0
#define _DDSET_DEF_DRAW				1
#define _DDSET_DEF_PADDRAW	    	2
#define _DDSET_DEF_EXMODE		    4
#define _DDSET_DEF_CLLTORMODE	    8
#define _DDSET_DEF_CLTTOBMODE	    16
#define _DDSET_DEF_CLSQUARE			32
#define _DDSET_DEF_EXMODESRNOCHANGE 64
#define _DDSET_DEF_CLUSESTMODE     128

#define _SHADOWSET_TTOB				0
#define _SHADOWSET_TRTOBL			1
#define _SHADOWSET_LTOR				2
#define _SHADOWSET_TLTOBR			3


#define EX_COLOR_STYLE_NOSET			0//No Use ExColor
#define EX_COLOR_STYLE_SHADOWMODE		1
#define EX_COLOR_STYLE_SWAPCOLOR		2
#define EX_COLOR_STYLE_EXCLTOCL			4
#define EX_COLOR_STYLE_CORNERMIX		8
#define EX_COLOR_STYLE_NODRAW			32//NO DrawThis


#define EX_CLIENT_SHADOWSET_TTOB		0
#define EX_CLIENT_SHADOWSET_LTOR		2
#define EX_CLIENT_SHADOWSET_TRTOBL		1
#define EX_CLIENT_SHADOWSET_TLTOBR		3


#define EX_COLOR_ALLSTYLE_NOSET			0

#define EX_COLOR_ORDER_NOSET			0
#define EX_COLOR_ORDER_TOP				1
#define EX_COLOR_ORDER_BOTTOM			2
#define EX_COLOR_ORDER_LEFT				3
#define EX_COLOR_ORDER_RIGHT			4


enum CExColorDataDef
{
	ECD_CLIENTCOLOR,
	ECD_LEFTCOLOR,ECD_RIGHTCOLOR,ECD_TOPCOLOR,ECD_BOTTOMCOLOR,
	ECD_TLCOLOR,ECD_TRCOLOR,ECD_BLCOLOR,ECD_BRCOLOR,

	ECD_CLIENTEXCOLOR,
	ECD_LEFTEXCOLOR,ECD_RIGHTEXCOLOR,ECD_TOPEXCOLOR,ECD_BOTTOMEXCOLOR,
	ECD_TLEXCOLOR,ECD_TREXCOLOR,ECD_BLEXCOLOR,ECD_BREXCOLOR,

	ECD_CLIENTSTYLE,
	ECD_LEFTSTYLE,ECD_RIGHTSTYLE,ECD_TOPSTYLE,ECD_BOTTOMSTYLE,
	ECD_TLSTYLE,ECD_TRSTYLE,ECD_BLSTYLE,ECD_BRSTYLE,

	ECD_CLSHADOWMODESET,
	ECD_CLSELFDRAWSETCOLOR,
	
	ECD_ORDER_ONEDRAW,
	ECD_ORDER_TWODRAW,
	ECD_ORDER_THREEDRAW,
	ECD_ORDER_FOURDRAW,

	ECD_OTHRE_A,
	ECD_OTHRE_B,
	ECD_OTHRE_C,
	ECD_OTHRE_D,
	ECD_OTHRE_E,
	ECD_ENDEND

};
#define ECD_COLOR_BEGIN			ECD_CLIENTCOLOR
#define ECD_COLOR_END			ECD_BRCOLOR
#define ECD_EXCOLOR_BEGIN		ECD_CLIENTEXCOLOR
#define ECD_EXCOLOR_END			ECD_BREXCOLOR
#define ECD_STYLE_BEGIN			ECD_CLIENTSTYLE
#define ECD_STYLE_END			ECD_BRSTYLE


#define ECD_ALLCOLOR_BEGIN		ECD_COLOR_BEGIN
#define ECD_ALLCOLOR_END		ECD_EXCOLOR_END

#define ECD_ORDER_SETBEGING		ECD_ORDER_ONEDRAW
#define ECD_ORDER_SETEND		ECD_ORDER_FOURDRAW

class HJ_DEF_CLASS CExColorSelfDrawSet
{
public:
	//X,Y,X,Y;
	CPoint m_FPoint;
	CPoint m_TPoint;
	DWORD m_WorSet;
	CExColorSelfDrawSet()
	{
		m_TPoint=m_FPoint=CPoint(0,0);
		m_WorSet=1;
	}
	void CopyTo(CExColorSelfDrawSet * pSet)
	{
		pSet->m_FPoint=m_FPoint;
		pSet->m_TPoint=m_TPoint;
		pSet->m_WorSet=m_WorSet;
	}
};

class HJ_DEF_CLASS CExColor	
{
	friend class CHJSKINMakerDoc;
protected:
	DWORD _dwdata[ECD_ENDEND];
	void SelfDrawToText(CString & strSelfDrawText);
	BOOL TextToSelfDraw(CString  strSelfDrawText);
public:
	CObArray m_SelfDrawSet;
	void ClearSelfDrawSet();
	void GetSelfDrawSetText(CString & strSelfDrawText);
	BOOL SetSelfDrawSetText(CString strSelfDrawText);

	~CExColor()
	{
		ClearSelfDrawSet();
	}
	CExColor()
	{
		for(int i=0;i<ECD_ENDEND;i++)
		{
			_dwdata[i]=0;
		}
		_dwdata[ECD_ORDER_ONEDRAW]=EX_COLOR_ORDER_TOP;
		_dwdata[ECD_ORDER_TWODRAW]=EX_COLOR_ORDER_BOTTOM;
		_dwdata[ECD_ORDER_THREEDRAW]=EX_COLOR_ORDER_LEFT;
		_dwdata[ECD_ORDER_FOURDRAW]=EX_COLOR_ORDER_RIGHT;

		_dwdata[ECD_TLSTYLE]=EX_COLOR_STYLE_NODRAW;
		_dwdata[ECD_TRSTYLE]=EX_COLOR_STYLE_NODRAW;
		_dwdata[ECD_BLSTYLE]=EX_COLOR_STYLE_NODRAW;
		_dwdata[ECD_BRSTYLE]=EX_COLOR_STYLE_NODRAW;
	}
	void CopyTo(CExColor * pExColor);
	void SaveData(CFile * pFile);
	BOOL LoadData(CFile * pFile);
	DWORD GetData(CExColorDataDef def)
	{
		if(def==ECD_ENDEND)
		{
			return 0;
		}
		return _dwdata[def];
	}
	void SetData(CExColorDataDef def,DWORD data)
	{
		if(def==ECD_ENDEND)
		{
			return;
		}
		_dwdata[def]=data;
	}
	void SetDataEX(COLORREF color,COLORREF excolor,DWORD style)
	{
		int i=0;
		for(i=ECD_COLOR_BEGIN;i<=ECD_COLOR_END;i++)
		{
			_dwdata[(CExColorDataDef)i]=color;
		}
		for(i=ECD_EXCOLOR_BEGIN;i<=ECD_EXCOLOR_END;i++)
		{
			_dwdata[(CExColorDataDef)i]=excolor;
		}
		for(i=ECD_STYLE_BEGIN;i<=ECD_STYLE_END;i++)
		{
			_dwdata[(CExColorDataDef)i]=style;
		}
	}

};

class STDRAWRECTSET
{
public:
	DWORD DR_L,DR_R,DR_T,DR_B,DR_TL,DR_TR,DR_BL,DR_BR,DR_CL;
	DWORD DRW_ML,DRW_MR,DRW_MT,DRW_MB;
	CExColor m_ExColorSet;
	CRect NoDrawRect;//内部
	STDRAWRECTSET()
	{
		DR_L=DR_R=DR_T=DR_B=DR_TL=DR_TR=DR_BL=DR_BR=DR_CL=_DDSET_DEF_DRAW;
		DRW_ML=DRW_MR=DRW_MT=DRW_MB=0;
		NoDrawRect=CRect(0,0,0,0);
	}
	void SET(BOOL bSETLRTB)
	{
		DR_L=DR_R=DR_T=DR_B=DR_TL=DR_TR=DR_BL=DR_BR=DR_CL=bSETLRTB;
	}
	void CopyFrom(STDRAWRECTSET & src)
	{
		DR_L=src.DR_L;
		DR_R=src.DR_R;
		DR_T=src.DR_T;
		DR_B=src.DR_B;
		DR_TL=src.DR_TL;
		DR_TR=src.DR_TR;
		DR_BR=src.DR_BR;
		DR_CL=src.DR_CL;

		DRW_ML=src.DRW_ML;
		DRW_MR=src.DRW_MR;
		DRW_MT=src.DRW_MT;
		DRW_MB=src.DRW_MB;
		NoDrawRect=src.NoDrawRect;
		src.m_ExColorSet.CopyTo(&m_ExColorSet);
	}
};

class HJ_DEF_CLASS   CHJBitmap :
	public CHJCustomBitmap
{
public:
	void StretchDraw(CDC *pDC,int nx,int ny, CRect r, CRect sr );
	CHJBitmap(void);
	virtual ~CHJBitmap(void);
	void ShDraw(CDC *pDC,int nx,int ny,CRect sr,CRect tr);//StretchDraw
	void BBDraw(CDC *pDC, int nx,int ny,CRect tr);//BitBltDraw
	void BBDrawA(CDC *pDC, int nx,int ny,CRect sr,CRect tr);//BitBltDraw

	static BOOL DrawGradient(CDC * pDC,CRect tr,COLORREF StartColor,COLORREF EndColor,int nDir,BOOL bModeSwap,int nNumColors=256,CArray<COLORREF,COLORREF> * pArray=NULL);
	void DrawRect(CDC * pDC,CRect Sr,CRect tr,STDRAWRECTSET & drSet,BOOL UseTran=FALSE,int TranColorORX=0,int TranY=-1);
	void DrawRectTran(CDC * pDC,CRect Sr,CRect tr,STDRAWRECTSET & drSet,int TranColorORX=0,int TranY=-1);

	void DrawTran(CDC * pDC,int tx,int ty,CRect Sr,int TranColorORX,int TranY,BOOL bUseEXEXMODE=FALSE);//BitBlt  //if TranY<0 then TranColorORX=TRAN_RGB
	void DrawTran(CDC * pDC,CRect Sr,CRect tr,int TranColorORX,int TranY=-1,BOOL bUseEXEXMODE=FALSE);//BitBlt  //if TranY<0 then TranColorORX=TRAN_RGB
	COLORREF GetSrTranColor(CDC * pDC,CRect Sr,int TranX,int TranY);
	void DrawCutMode(CDC * pDC,CRect tr,int LeftM,int RightM,int TopM,int BottomM);
	//void DrawRectTran(CDC * pDC,CRect Sr,CRect tr,STDRAWRECTSET & drSet);
	void Draw(CDC *pDC,CRect tr);
	void DrawDisable(CDC *pDC, int x, int y, CRect Rect);
	BOOL DrawTranEx(CDC * pDC,CRect sr,int x,int y,COLORREF clTran);
	BOOL DrawTranEx(CDC * pDC,CRect sr,int x,int y,int TranX, int TranY);
	
};
void  RectHCenter(CRect * r,CRect Bounds);
void  RectVCenter(CRect * r,CRect Bounds);
BOOL DrawImageListHJ(CDC * pDC,CImageList * pList,int index,int x,int y);
BOOL DrawImageListHJEX(CDC * pDC,CImageList * pList,int index,int x,int y);


HBITMAP CreateGradientBMP(HDC hDC,COLORREF cl1,COLORREF cl2,int nWidth,int nHeight,int nDir,int nNumColors,BOOL bModeSwap,CArray<COLORREF,COLORREF> * pArray);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -