⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chartctrl.h

📁 The application wizard has created this SoccerDoctor application for you. This application not onl
💻 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 + -