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

📄 basegr.h

📁 EVC 编的示波器程序
💻 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 <Afxtempl.h>

#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<Legend,Legend&> m_Legend;
};

#endif // !defined(AFX_BASEGR_H__294D2D16_1BAA_11D6_80E0_5254AB372662__INCLUDED_)

⌨️ 快捷键说明

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