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

📄 chart.h

📁 一个wince下的画曲线类
💻 H
字号:
#if !defined(AFX_CHART_H__27C6B1C9_9EEC_4CD0_8D3F_E2534AF6E44C__INCLUDED_)
#define AFX_CHART_H__27C6B1C9_9EEC_4CD0_8D3F_E2534AF6E44C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Chart.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CChart window

class CChart : public CWnd
{
// Construction
public:
	CChart();

// Attributes
public:

// Operations
public:

	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CChart)
public:
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
	//}}AFX_VIRTUAL
	
	// Implementation
public:
	virtual ~CChart();
	//数据长度
	int m_ilength;
	//储存数据点
	CPoint *m_PPoints;  //数据坐标点
	double *m_dSignalSource; //原始数据
	CPoint *rPoint; //暂存数据
	//放大
	CPoint *m_PZOutPoints;  //放大数据坐标点
	CRect ZoomOutRect;      //放大区域
	double *m_dZOOMOutSignal; //放大区域的原始数据
	int m_iZoomOutTimes;

	//放大手势坐标
	CPoint m_PZOutStart;  //放大起始点坐标
	CPoint m_PZOutEnd;     //放大终点坐标

	int m_iZoomFlag;    //放大手势,鼠标单击标识
	int m_iZoomCount;   //计数标识
	int m_iZoomAdd;   //判断当前手势是放大还是缩小,计数标识,计数到3表示放大
//	int m_iZoomFlag1;
	int m_iZoomFlag2;
///	int m_iZoomAdd1;
//	int m_iZoomCount1;
	int m_iTempLength;    //暂存数据长度
	int m_iTemp;   //加点计数
	// Generated message map functions
protected:
	//{{AFX_MSG(CChart)
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnPaint();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
public:
	CRect rectLine;
	//存储线中的点 
	double m_iXDiv; //X轴分辨率
	double m_iYDiv; //Y轴分辨率
	//画表格边框设备环境
	CDC m_dcGrid;  
	//表格边框设备环境缓冲位图
	CBitmap m_bitmapGrid; 
	//用来画线的设备环境
	CDC m_dcLine;  
	//画线设备环境缓冲位图
	CBitmap m_bitmapLine;
public:
	COLORREF m_crBackColor; //控件背景色
	COLORREF m_crGridColor; //表格边框颜色
	COLORREF m_crLineColor; //曲线颜色
	COLORREF m_crTextColor; //输出文本颜色
	
	double m_dXMaxValue ; //X轴最大值
	double m_dXMinValue ; //X轴最小值
	double m_dYMaxValue ; //Y轴最大值
	double m_dYMinValue ; //Y轴最小值
	
	LPCTSTR m_strXCaption ; //X轴标题
	LPCTSTR m_strYCaption ; //Y轴标题
public:
	//用于刷新控件显示
	void InvalidateCtrl();
	//将添加的double数组点值转换成屏幕坐标
	CPoint* GpToSp(double* point, long llength, double dx, double dy);
	//刷新曲线,当切换曲线框大小时使用
	void UpdateChart();	
public:
	//放大函数
	void ZOOMOut(CRect &rect);
	//添加一个点
	void AddPoint(double dPointX, double dPointY);
	//清除上次显示曲线
	void Clear();
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CHART_H__27C6B1C9_9EEC_4CD0_8D3F_E2534AF6E44C__INCLUDED_)

⌨️ 快捷键说明

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