You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.2 KiB
C

1 month ago
#pragma once
#ifndef AbstraceAxis_h__
#define AbstraceAxis_h__
#include "drawingobject.h"
#include "ChartDataSet.h"
#include "CommonDefine.h"
namespace NChart
{
class AFX_EXT_CLASS CTick
{
public:
CTick()
{
pos=0;
label="";
isMajor=FALSE;
}
double pos;
CString label;
bool isMajor;
};
class AFX_EXT_CLASS CAbstractAxis :
public CDrawingObject
{
public:
CAbstractAxis(CString label,CChartDataSet * pDataset,const CRect8& rcClient,DIRECTION direction,LAYOUTPOS pos);
virtual ~CAbstractAxis(void);
virtual void SetRect(const CRect8& rcClient);
virtual void SetAxisType(AXISTYPE axisType);
virtual AXISTYPE GetAxisType();
virtual void SetDataSet(CChartDataSet * pDataset);
virtual double OffsetDistance(double val)=0;
virtual void Draw(CXyDC &dc);
virtual bool Create();
virtual void SetAxisPos(LAYOUTPOS axisPos);
virtual LAYOUTPOS GetAxisPos();
virtual void SetAxisFont(GDFLOGFONT font);
///* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B7BD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> */
virtual DIRECTION GetDirection();
virtual void SetDirection(DIRECTION direction);
virtual vector<CTick> & GetTickArray() { return m_vecTicksArray; }
virtual void SetAsMainAxis(bool isMain);
virtual bool IsMain();
virtual double GetLowerBound();
virtual double GetUpBound();
virtual double GetMinAxisSpace();
virtual AXISDATAREF GetAxisDataRef(){return m_eAxisDataRef;};
virtual void SetAxisDataRef(AXISDATAREF axisDataRef){m_eAxisDataRef=axisDataRef;};
virtual AXISMARKPOS GetAxisMarkPos(){return m_eAxisMarkPos;};
virtual void SetAxisMarkPos(AXISMARKPOS pos){m_eAxisMarkPos=pos;};
protected:
virtual void AxisRangeAutoBound();
protected:
CChartDataSet * m_pDataset;
vector<CTick> m_vecTicksArray;
DIRECTION m_eDirection;
///* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> */
AXISTYPE m_eAxisType;
///* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB> */
LAYOUTPOS m_eAxisPos;
int m_iMaxLabelChar;
double m_dMaxTickLength;
bool m_bIsMainAxis;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
double m_dUpperBound;
double m_dLowerBound;
double m_dMajorStepVal;
double m_dMinorStepVal;
double m_dValCoorFactor;
AXISMARKPOS m_eAxisMarkPos;
AXISDATAREF m_eAxisDataRef;
double m_dStartValue;
double m_dEndValue;
//GDI<44><49><EFBFBD><EFBFBD>
GDFLOGPEN m_pen;
GDFLOGFONT m_font;
};
}//namespace
#endif // AbstraceAxis_h__