00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _CHARTDATETIMEAXIS_H_
00023 #define _CHARTDATETIMEAXIS_H_
00024
00025 #include "ChartAxis.h"
00026 #include "ChartString.h"
00027
00029 class CChartDateTimeAxis : public CChartAxis
00030 {
00031 friend CChartCtrl;
00032
00033 public:
00035 enum TimeInterval
00036 {
00037 tiSecond,
00038 tiMinute,
00039 tiHour,
00040 tiDay,
00041 tiMonth,
00042 tiYear
00043 };
00044
00046
00064 void SetTickIncrement(bool bAuto, TimeInterval Interval, int Multiplier);
00066
00074 void SetTickLabelFormat(bool bAutomatic, const TChartString& strFormat);
00076
00089 void SetReferenceTick(COleDateTime referenceTick);
00090
00091 private:
00093 CChartDateTimeAxis();
00095 ~CChartDateTimeAxis();
00096
00097 double GetFirstTickValue() const;
00098 bool GetNextTickValue(double dCurrentTick, double& dNextTick) const;
00099 TChartString GetTickLabel(double TickValue) const;
00100 long ValueToScreenDiscrete(double Value) const;
00101 long GetTickPos(double TickVal) const;
00102
00103 void RefreshTickIncrement();
00104 void RefreshFirstTick();
00106 void RefreshDTTickFormat();
00107
00109
00118 COleDateTime AddMonthToDate(const COleDateTime& Date,
00119 int iMonthsToAdd) const;
00120
00121 double GetTickBeforeVal(double dValue) const;
00122
00124 TChartString m_strDTTickFormat;
00126 bool m_bAutoTickFormat;
00128
00134 TimeInterval m_BaseInterval;
00136
00141 int m_iDTTickIntervalMult;
00142
00144 double m_dFirstTickValue;
00145
00147 COleDateTime m_ReferenceTick;
00148 };
00149
00150 #endif // _CHARTDATETIMEAXIS_H_