📄 2dscale.h
字号:
/************************************************************************************************
// $Header: /home/cvsroot/SoccerDoctor/Chart/2DScale.h,v 1.1 2002/09/07 06:03:54 peter Exp $
//***********************************************************************************************
/************************************************************************************************/
/* */
/* File : 2DScale.h */
/* */
/* Purpose : interface for the Axis in the CChartCtrl */
/* */
/* Author : Scott Pelger Date Created: 10JUN02 */
/* */
/* Revisions */
/* */
/* Engineer Date Description */
/* */
/* Scott Pelger 10JUN02 initial version */
/* */
/************************************************************************************************/
#if !defined(AFX_2DSCALE_H__4C11AF0A_7C23_4F26_9717_0D149B930D12__INCLUDED_)
#define AFX_2DSCALE_H__4C11AF0A_7C23_4F26_9717_0D149B930D12__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ChartConstants.h"
#include "math.h"
#include "DataSeries.h"
class C2DScale {
public:
C2DScale(BOOL bXAxis=TRUE, BOOL bYAxis=TRUE);
virtual ~C2DScale();
COLORREF GetLineColor(void) {return m_LineColor;};
void SetLineColor(COLORREF LineColor);
COLORREF GetChartFillColor(void) {return m_ChartFillColor;};
void SetChartFillColor(COLORREF FillColor) {m_ChartFillColor = FillColor;};
void DrawAxis(CDC* pDC, CRect* pRect);
void SetStyle(DWORD dwStyle);
void ClearStyle(DWORD dwStyle);
DWORD GetStyle(DWORD dwStyle);
void SetAxisScale(enum AXIS eAxis, double dMin, double dMax);
void GetAxisScale(enum AXIS eAxis, double& dMin, double& dMax);
void SetScaleStep(enum AXIS eAxis, double dMin, double dMax);
void GetScaleStep(enum AXIS eAxis, double& dMin, double& dMax);
void SetAxisFormatString(enum AXIS eAxis, CString& Format);
BYTE GetDepth(void) {return m_yDepth;};
double GetHorzRotation(void) {return m_dHorzRotation;};
double GetVertRotation(void) {return m_dVertRotation;};
void SetDepth(BYTE yDepth) {m_yDepth = yDepth;};
void SetHorzRotation(double dHorzRotation) {m_dHorzRotation = dHorzRotation;};
void SetVertRotation(double dVertRotation) {m_dVertRotation = dVertRotation;};
void SetAxisText(enum AXIS eAxis, CString* String);
void NotifyRemovedDataPoint(BOOL bRemoved) {m_bRemoved = bRemoved;};
CFont* m_pYAxisFont;
CFont* m_pFont;
CString m_sXAxisText;
CString m_sYAxisText;
CString m_sXAxisFormat;
CString m_sYAxisFormat;
friend void CDataSeriesArray::DrawData(CDC* pDC, C2DScale* pScale);
friend void CDataSeriesArray::DrawIcons(CDC* pDC, C2DScale* pScale);
friend void CDataSeriesArray::_DrawLineChart(int nX, int nY);
friend void CDataSeriesArray::_DrawRotatedLineChart(int nX, int nY);
friend void CDataSeriesArray::_DrawAreaChart(int nX, int nY);
friend void CDataSeriesArray::_DrawXYChart(int nX, int nY);
friend void CDataSeriesArray::_DrawRotatedXYChart(int nX, int nY);
friend void CDataSeriesArray::_DrawBarChart(int nX, int nY);
friend void CDataSeriesArray::_DrawPieChart(int nX, int nY);
friend void CDataSeriesArray::_DrawRotatedPieChart(int nX, int nY);
CRect* GetRect(void) {return m_pRect;};
BOOL HasVerticalScalingChanged(void) {return m_dPrevYMin!=m_dYMin||m_dPrevYMax!=m_dYMax;};
private:
void _SetDrawingArea(WORD& wMaxWidthXAxis, WORD& wMaxWidthYAxis, int& nXAxisOffset, int& nYAxisOffset, CRect* TickRectX, CRect* TickRectY);
void _DrawTickText(WORD wMaxWidthXAxis, WORD wMaxWidthYAxis, int nXAxisOffset, int nYAxisOffset, CRect* TickRectX, CRect* TickRectY);
void _PrintXAxisLabelText(CRect* pTickRectX, double dStepX, int nOffset, WORD wVertOffset);
void _PrintAxisText(int& nXAxisOffset, int& nYAxisOffset);
void _DrawAxis(void);
void _DrawGraticules(void);
void _DrawTickMarks(void);
int _XValueToPixel(double dValue);
int _YValueToPixel(double dValue);
double _XPixelToValue(int nPixel);
double _YPixelToValue(int nPixel);
private:
BOOL m_bXAxis;
BOOL m_bYAxis;
double m_dXMin;
double m_dXMax;
double m_dYMin;
double m_dYMax;
double m_dPrevYMin; //means of detecting a vertical scaling delta
double m_dPrevYMax; //means of detecting a vertical scaling delta
protected:
double m_dMinorStepX;
double m_dMajorStepX;
double m_dMajorStepXDraw;
double m_dMinorStepY;
double m_dMajorStepY;
double m_dMajorStepYDraw;
DWORD m_dwXStyle;
DWORD m_dwYStyle;
DWORD m_dwGenericStyle;
CDC* m_pDC;
CPen m_Pen;
CRect* m_pRect;
CRect m_FullRect;
COLORREF m_LineColor;
COLORREF m_ChartFillColor;
BYTE m_yDepth;
double m_dHorzRotation;
double m_dVertRotation;
BOOL m_bRemoved; //for the strip chart
};
#endif // !defined(AFX_2DSCALE_H__4C11AF0A_7C23_4F26_9717_0D149B930D12__INCLUDED_)
//***********************************************************************************************
// END OF FILE
// $Log: 2DScale.h,v $
// Revision 1.1 2002/09/07 06:03:54 peter
// 新的chart类,从别的地方拷来的
//
//***********************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -