📄 chartctrl.h
字号:
/************************************************************************************************
// $Header: /home/cvsroot/SoccerDoctor/Chart/ChartCtrl.h,v 1.2 2002/09/07 11:41:59 peter Exp $
//***********************************************************************************************
/************************************************************************************************/
/* */
/* File : ChartCtrl.h */
/* */
/* Purpose : interface for the CChartCtrl */
/* */
/* Author : Scott Pelger Date Created: 10JUN02 */
/* */
/* Revisions */
/* */
/* Engineer Date Description */
/* */
/* Scott Pelger 10JUN02 initial version */
/* */
/************************************************************************************************/
#if !defined(AFX_CHARTCTRL_H__E4D51A36_CD70_11D5_8037_8C7A05B7325A__INCLUDED_)
#define AFX_CHARTCTRL_H__E4D51A36_CD70_11D5_8037_8C7A05B7325A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ChartCtrl.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CChartCtrl window
#include "TitleWnd.h"
#include "LegendWnd.h"
#include "ChartWnd.h"
class CChartCtrl : public CWnd
{
// Construction
public:
CChartCtrl();
// Attributes
public:
private:
CTitleWnd m_wndHeaderWnd;
CTitleWnd m_wndFooterWnd;
CLegendWnd m_wndLegendWnd;
CChartWnd m_wndChartWnd;
CRect m_HeaderRect;
CRect m_FooterRect;
CRect m_LegendRect;
CRect m_ChartRect;
enum CHART_TYPE m_eChartType;
BOOL m_bHeaderVisible;
BOOL m_bFooterVisible;
BOOL m_bLegendVisible;
CHART_WINDOW_POSITION m_eLegendPosition;
// Operations
public:
private:
void _RecalculateAllWindows(void);
void _RecalculateLegend(CRect& WindowRect);
void _RecalculateHeader(CRect& WindowRect);
void _RecalculateFooter(CRect& WindowRect);
void _RecalculateChart(CRect& WindowRect);
void _AutoScale(DWORD dwStyle);
afx_msg LRESULT UpdateWindow(WPARAM wParam, LPARAM lParam) {UpdateWindow();return 0;};
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CChartCtrl)
//}}AFX_VIRTUAL
// Implementation
public:
/****Header/Footer Methods****/
void ShowHeader(BOOL bShowWindow=TRUE) {m_bHeaderVisible = bShowWindow;_RecalculateAllWindows();};
void ShowFooter(BOOL bShowWindow=TRUE) {m_bFooterVisible = bShowWindow;_RecalculateAllWindows();};
void SetHeaderText(CHART_WINDOW_POSITION Position, CString& Text);
void SetFooterText(CHART_WINDOW_POSITION Position, CString& Text);
void SetHeaderTextColor(COLORREF Color) {m_wndHeaderWnd.SetTextColor(Color);};
void SetFooterTextColor(COLORREF Color) {m_wndFooterWnd.SetTextColor(Color);};
/****Header/Footer Methods****/
/****Generic Chart Methods****/
void SetChartType(enum CHART_TYPE eChartType);
enum CHART_TYPE GetChartType(void) {return m_eChartType;};
void SetWindowColor(COLORREF Color);
COLORREF GetWindowColor(void) {return m_wndChartWnd.GetWindowColor();};
void SetStyle(enum STYLES eStyle) {m_wndChartWnd.SetStyle(eStyle);};
DWORD GetStyle(void) {return m_wndChartWnd.GetStyle();};
/****Generic Chart Methods****/
/****Axis Methods****/
COLORREF GetLineColor(void) {return m_wndChartWnd.GetLineColor();};
void SetLineColor(COLORREF LineColor) {m_wndChartWnd.SetLineColor(LineColor);m_wndLegendWnd.SetLegendTextColor(LineColor);};
COLORREF GetChartFillColor(void) {return m_wndChartWnd.GetChartFillColor();};
void SetChartFillColor(COLORREF FillColor) {m_wndChartWnd.SetChartFillColor(FillColor);};
void SetAxisScale(enum AXIS eAxis, double dMin, double dMax);
void GetAxisScale(enum AXIS eAxis, double& dMin, double& dMax) {m_wndChartWnd.GetAxisScale(eAxis, dMin, dMax);};
void SetScaleStep(enum AXIS eAxis, double dMin, double dMax) {m_wndChartWnd.SetScaleStep(eAxis, dMin, dMax);};
void GetScaleStep(enum AXIS eAxis, double& dMin, double& dMax) {m_wndChartWnd.GetScaleStep(eAxis, dMin, dMax);};
void SetAxisStyleX(DWORD dwStyle) {_SetAxisStyle(X_AXIS|dwStyle);};
void SetAxisStyleY(DWORD dwStyle) {_SetAxisStyle(Y_AXIS|dwStyle);};
private:
void _SetAxisStyle(DWORD dwStyle);
public:
DWORD GetAxisStyleX(void) {return _GetAxisStyle(X_AXIS)&~X_AXIS;};
DWORD GetAxisStyleY(void) {return _GetAxisStyle(Y_AXIS)&~Y_AXIS;};
private:
DWORD _GetAxisStyle(enum AXIS eAxis) {return m_wndChartWnd.GetAxisStyles(eAxis);};
public:
BYTE GetDepth(void) {return m_wndChartWnd.GetDepth();};
double GetHorzRotation(void) {return m_wndChartWnd.GetHorzRotation();};
double GetVertRotation(void) {return m_wndChartWnd.GetVertRotation();};
void SetDepth(BYTE yDepth);
void SetHorzRotation(double dHorzRotation);
void SetVertRotation(double dVertRotation);
void SetAxisText(enum AXIS eAxis, CString* String) {m_wndChartWnd.SetAxisText(eAxis, String);};
void SetAxisFormatString(enum AXIS eAxis, CString& Format) {m_wndChartWnd.SetAxisFormatString(eAxis, Format);};
/****Axis Methods****/
/****Data Methods****/
int AddDataSeries(CString Caption="", COLORREF Color=RGB(255, 0, 0)) {m_wndLegendWnd.AddSeriesItem(Caption, Color); return m_wndChartWnd.m_DataSeriesArray.AddDataSeries(Caption, Color);};
CDataSeries* GetDataSeries(int nDataSeries) {return m_wndChartWnd.GetDataSeries(nDataSeries);};
BOOL AddDataPoint(CDataPoint* pDataPoint, int nDataSeries=0);
BOOL RemoveDataPoint(int nIndex, int nDataSeries=0) {return m_wndChartWnd.m_DataSeriesArray.RemoveDataPoint(nIndex, nDataSeries);};
void GetRangeInDataSeries(int nDataSeries, double& dMin, double& dMax, enum AXIS eAxis/*=X_AXIS*/) {m_wndChartWnd.m_DataSeriesArray.GetRangeInDataSeries(nDataSeries, dMin, dMax, eAxis);};
int GetNumOfDataPoints(int nDataSeries=0) {return m_wndChartWnd.m_DataSeriesArray.GetNumOfDataPoints(nDataSeries);};
void Purge(void) {m_wndChartWnd.m_DataSeriesArray.Purge(); m_wndLegendWnd.Purge();};
int GetCount(void) {return m_wndChartWnd.m_DataSeriesArray.GetCount();};
void GetXAxisRange(double& dMin, double& dMax) {m_wndChartWnd.m_DataSeriesArray.GetXAxisRange(dMin, dMax);};
void GetYAxisRange(double& dMin, double& dMax) {m_wndChartWnd.m_DataSeriesArray.GetYAxisRange(dMin, dMax);};
void SetDataSeriesColor(COLORREF Color, int nDataSeries=0) {m_wndChartWnd.m_DataSeriesArray.SetColor(Color, nDataSeries);};
COLORREF GetDataSeriesColor(int nDataSeries=0) {return m_wndChartWnd.m_DataSeriesArray.GetColor(nDataSeries);};
void SetDataSeriesCaption(CString Caption, int nDataSeries=0) {m_wndChartWnd.m_DataSeriesArray.SetCaption(Caption, nDataSeries);};
CString GetDataSeriesCaption(int nDataSeries=0) {return m_wndChartWnd.m_DataSeriesArray.GetCaption(nDataSeries);};
/****Data Methods****/
/****Legend Methods****/
void ShowLegend(BOOL bShowWindow=TRUE) {m_bLegendVisible = bShowWindow;_RecalculateAllWindows();};
void SetLegendPosition(CHART_WINDOW_POSITION eLegendPosition=eRIGHT) {m_wndLegendWnd.SetLegendPosition(m_eLegendPosition = eLegendPosition);};
void ShowPointLegend(void) {m_wndLegendWnd.ShowPointLegend();};
void ShowSeriesLegend(void) {m_wndLegendWnd.ShowSeriesLegend();m_bLegendVisible = TRUE;_RecalculateAllWindows();};
void SetLegendAutoHide(BYTE yWidth, BYTE yHeight) {m_wndLegendWnd.SetAutoHide(yWidth, yHeight);_RecalculateAllWindows();};
void SetLegendSeriesItemColor(COLORREF Color, int nDataSeries=0) {m_wndLegendWnd.SetLegendSeriesItemColor(Color, nDataSeries);};
/****Legend Methods****/
virtual ~CChartCtrl();
virtual void UpdateWindow(void);
virtual void Invalidate(BOOL bErase=TRUE);
// Generated message map functions
protected:
//{{AFX_MSG(CChartCtrl)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg BOOL OnEraseBkgnd(CDC* pDC) {return TRUE;};
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnPaint();
//}}AFX_MSG
afx_msg LRESULT OnGetPopupText(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnDoubleClickDataPoint(WPARAM wParam, LPARAM lParam) {return GetParent()->SendMessage(WM_LBUTTONDBLCLK_DATA_POINT, wParam, lParam);};
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CHARTCTRL_H__E4D51A36_CD70_11D5_8037_8C7A05B7325A__INCLUDED_)
//***********************************************************************************************
// END OF FILE
// $Log: ChartCtrl.h,v $
// Revision 1.2 2002/09/07 11:41:59 peter
// chart移植初步完成
//
// Revision 1.1 2002/09/07 06:03:54 peter
// 新的chart类,从别的地方拷来的
//
//***********************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -