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