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++
96 lines
2.2 KiB
C++
#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);
|
|
///* 坐标轴方向默认为横向 */
|
|
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;
|
|
///* 坐标轴类型默认为线性 */
|
|
AXISTYPE m_eAxisType;
|
|
///* 坐标轴布局的位置 */
|
|
LAYOUTPOS m_eAxisPos;
|
|
int m_iMaxLabelChar;
|
|
double m_dMaxTickLength;
|
|
|
|
bool m_bIsMainAxis;
|
|
|
|
//坐标轴值
|
|
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属性
|
|
GDFLOGPEN m_pen;
|
|
GDFLOGFONT m_font;
|
|
|
|
};
|
|
|
|
}//namespace
|
|
|
|
|
|
|
|
#endif // AbstraceAxis_h__
|