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

📄 chartbase.h

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 H
字号:
// DrawBase.h: interface for the CChartBase class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DRAWBASE_H__8EB56351_FD79_11D3_BE3B_00105A86943C__INCLUDED_)
#define AFX_DRAWBASE_H__8EB56351_FD79_11D3_BE3B_00105A86943C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "tchart.h"
#include "TipDlg.h"

// 作图类别常数
#define   CHART_CIRCLE          0x01    // 圆类型
#define   CHART_AXIS            0x02    // 轴类型
#define   CHART_DIST            0x03    // 分布类型
#define   CHART_3D              0x04    // 三维类型

class CToolTipWnd;

class CChartBase : public CTChart  
{
public:
	CChartBase();
	DECLARE_DYNCREATE(CChartBase)
	virtual ~CChartBase();
	BOOL Create(DWORD dwStyle, const RECT& rect, UINT uiID, CWnd* pParentWnd, CString Caption);
	virtual void AddData(long SeriesIndex, double x, double y, COLORREF color = RGB(0, 0, 255)); // 增加绘图数据
	virtual void ShowCursor();          // 显示光标
	void DrawScale(long X, long Y);     // 绘制游标
	void CalcValueRgn(CRect selRc, double& xMin, double& xMax, double& yMin, double& yMax); // 计算选定区域物理范围值 
	void MoveTip(long x, long y, double xMin, double xMax, double yMin, double yMax);
	BOOL ClickInRect(long x, long y, CRect& rc); // 检查鼠标位置是否在作图区内
	void InitChart(BYTE type);              // 设置CHART样式
	void ClearUp();                         // 清除绘图数据
	void DrawLineMark(BOOL bDrawMark);      // 是否绘制线条号
public:
	CString       m_cCaption;               // 标题
	BYTE          m_btType;                 // 作图类别
	BOOL          m_bLine;                  // 光标是否位于线条上
protected:
	long          m_lSelBeginX;             // 鼠标选定区域开始点X坐标
	long          m_lSelBeginY;             // 鼠标选定区域开始点Y坐标
	long          m_lSelEndX;               // 鼠标选定区域结束点X坐标
	long          m_lSelEndY;               // 鼠标选定区域结束点Y坐标
	BOOL          m_bMouseSel;              // 是否开始鼠标选定
	double        m_dLineLen;               // 线条最大长度
	BOOL          m_bShowCursor;            // 是否显示光标
	BOOL          m_bMoveCursor;            // 是否移动光标 
	long          m_lCursor;                // 光标位置(从1开始)
	long          m_lStep;                  // 游标移动步长
	BOOL          m_bGraphPre;              // 开始图形预处理
	BOOL          m_bZoom;                  // 是否放大
	CRect         m_rZoom;                  // 放大区域
	double        m_dZoomXMin;              // 放大后X轴最小值(物理值)
	double        m_dZoomXMax;              // 放大后X轴最大值(物理值)
	double        m_dZoomYMin;              // 放大后Y轴最小值(物理值)
	double        m_dZoomYMax;              // 放大后Y轴最小值(物理值)
	CRect         m_rClip;                  // 
	HCURSOR       arrow;                    // 光标句柄
	HCURSOR       cross;                    // 光标句柄
	long          m_lvScale;                // 水平游标
	long          m_lhScale;                // 垂直游标
	int           m_iGraphLoc;
protected:
	BOOL IsEnableZoom();                // 判断是否能继续放大 
	CString GetPosValue(long x, long y);
	BOOL m_bDrawLineMark;
public:
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CChartBase)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	//}}AFX_VIRTUAL
protected:
	afx_msg void OnMouseDownTChart(long Button, long Shift, long X, long Y);
	afx_msg void OnMouseMoveTChart(long Shift, long X, long Y);
	afx_msg void OnMouseUpTChart(long Button, long Shift, long X, long Y);
	afx_msg void OnOnClickSeriesTchart(long SeriesIndex, long ValueIndex, long Button, long Shift, long X, long Y);
	afx_msg void OnAfterDrawTChart();
	DECLARE_EVENTSINK_MAP()
};

#endif // !defined(AFX_DRAWBASE_H__8EB56351_FD79_11D3_BE3B_00105A86943C__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -