📄 chart.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 + -