?? hjbitmap.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 + -