www.pudn.com > DrawGrInDlg.rar > BaseGr.h


// BaseGr.h: interface for the CBaseGr class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_BASEGR_H__294D2D16_1BAA_11D6_80E0_5254AB372662__INCLUDED_) 
#define AFX_BASEGR_H__294D2D16_1BAA_11D6_80E0_5254AB372662__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include  
 
#define  PI 3.14159265358979324 
 
class CBaseGr   
{ 
public: 
	CBaseGr(); 
	virtual ~CBaseGr(); 
	enum PointType {CIRCLE,RECTANGLE,DIAMOND,TRIANGLE,FCIRCLE,FRECTANGLE,FDIAMOND,FTRIANGLE,FIRE,CROSS,XCROSS}; 
	enum Align {LEFT,RIGHT,TOP,BOTTOM,ON,NONE}; 
	enum GraphType {LINE,BAR,PIE}; 
	enum Position {VER,HOR}; 
	 
public: 
	void SetXName(CString strXName) {XName = strXName;} 
	void SetYName(CString strYName) {YName = strYName;} 
	void SetYMin(int nYMin) {YMin = nYMin;} 
	void SetYMax(int nYMax) {YMax = nYMax;} 
	void SetXMin(int nXMin) {XMin = nXMin;} 
	void SetXMax(int nXMax) {XMax = nXMax;} 
	void SetTitle(CString strTitle) {Title = strTitle;} 
	void SetLegend(CString Name,double Value=0.0,COLORREF FillColor=RGB(255,0,0),PointType GraphMode=RECTANGLE,int LineSize=1,COLORREF LineColor=RGB(0,0,0)); 
	virtual void DrawLine(CDC* pDC,POINT FromPoint,POINT ToPoint,int LineSize=1,COLORREF LineColor=RGB(0,0,0)); 
	virtual void DrawDashLine(CDC* pDC,POINT FromPoint,POINT ToPoint,int LineSize=1,COLORREF LineColor=RGB(128,128,128)); 
	virtual void DrawLine(CDC* pDC,int fpx,int fpy,int tpx,int tpy,int LineSize=1,COLORREF LineColor=RGB(0,0,0)); 
	virtual void DrawDashLine(CDC* pDC,int fpx,int fpy,int tpx,int tpy,int LineSize=1,COLORREF LineColor=RGB(128,128,128)); 
	virtual void DrawRectangle(CDC* pDC,POINT LeftTop,POINT RightBottom,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255)); 
	virtual void DrawRectangle(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255)); 
	virtual void DrawPolygon(CDC* pDC,LPPOINT lpPoints,int nPointCounts,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255)); 
	virtual void DrawArc(CDC* pDC,POINT pCoC,int nRadius,double AngleS,double AngleE,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255)); 
	virtual void DrawArc(CDC* pDC,int pCoCx,int pCoCy,int nRadius,double AngleS,double AngleE,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255)); 
	virtual void DrawColumn(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,int Height,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255));  
	virtual void DrawCub(CDC* pDC,int Face1x,int Face1y,int Face2x,int Face2y,int Height,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255)); 
	virtual void DrawPoint(CDC* pDC,int x,int y,PointType Mode=CIRCLE,int Radius=5,int LineSize=1,COLORREF LineColor=RGB(0,0,0),COLORREF FillColor=RGB(255,255,255)); 
	virtual void DrawCoordinate(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,BOOL WithDash=FALSE); 
	virtual void DrawYCoordinateValue(CDC* pDC,int Startx,int Starty,CString Value,Align Mode=LEFT,COLORREF FontColor=RGB(0,0,255)); 
	virtual void DrawYName(CDC* pDC,int Startx,int Starty,CString Value,Align Mode=LEFT,COLORREF FontColor=RGB(0,0,0)); 
//	virtual void DrawXCoordinate(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,GraphType Mode=BAR,Align AlignMode=ON,BOOL WithDash=FALSE); 
	virtual void DrawXCoordinateValue(CDC* pDC,int Startx,int Starty,CString Value,Position Pos=VER,COLORREF FontColor=RGB(0,0,0)); 
	virtual void DrawXName(CDC* pDC,int Startx,int Starty,CString Value,Align Mode=BOTTOM,COLORREF FontColor=RGB(0,0,0)); 
	virtual void DrawTitle(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,Align Mode=NONE,COLORREF FontColor=RGB(0,0,0)); 
	virtual void DrawLegend(CDC* pDC,int Startx,int Starty,int Width=30,Align Mode=TOP,COLORREF FontColor=RGB(0,0,0)); 
	virtual void DrawContent(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy); 
protected: 
	CString XName; 
	CString YName; 
	int		YMin; 
	int		YMax; 
	int		XMin; 
	int		XMax; 
 
	CString Title; 
	struct LegendGraph 
	{ 
		PointType GraphMode; 
		int LineSize; 
		COLORREF LineColor; 
		COLORREF FillColor; 
	}; 
	struct Legend 
	{ 
		LegendGraph Graph; 
		CString Name; 
		double Value; 
	}; 
	CArray m_Legend; 
}; 
 
#endif // !defined(AFX_BASEGR_H__294D2D16_1BAA_11D6_80E0_5254AB372662__INCLUDED_)