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

📄 cdrawstripchart.h

📁 一个wince下画趋势曲线的控件
💻 H
字号:
// CDrawStripChart.h: interface for the CDrawStripChart class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CDRAWSTRIPCHART_H__F8185ED4_A3EB_4B37_8674_E12D10C983A7__INCLUDED_)
#define AFX_CDRAWSTRIPCHART_H__F8185ED4_A3EB_4B37_8674_E12D10C983A7__INCLUDED_

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

class Value
{
public:
	COleDateTime m_DataTime;
	float m_value;
};

class XYValue  
{
public:
	int	m_iYMax;//最大值
	int	m_iYMin;//最小值
	//int XSpan;//X轴范围
	int m_Timelevel;//时间等级 0:毫秒;1:秒;2:分钟;3:小时;4:天;5:月;
	long m_color;//颜色
	long m_Visibled;//是否可见
	long m_lineWidth;//线宽
	long m_lineType;//线型 0:直线;1:点;
	long m_Excursion;//曲线偏移
	
	CArray<Value,Value>  m_ArrayValue;

public:
	XYValue()
	{
		m_iYMax=0;//最大值
		m_iYMin=0;//最小值
		m_Timelevel=1;//时间等级 0:毫秒;1:秒;2:分钟;3:小时;4:天;5:月;
		m_color=0;//颜色
		m_Visibled=1;//是否可见
		m_lineWidth=0;//线宽
		m_lineType=0;//线型 0:直线;1:点;
		m_Excursion=0;//曲线偏移

		m_ArrayValue.SetSize(0);
	}
	virtual ~XYValue()
	{
	}

	void Add(COleDateTime DataTime,float value)
	{
		Value m_Value;
		m_Value.m_DataTime = DataTime;
		m_Value.m_value = value;
		m_ArrayValue.Add(m_Value);
	}
};

class CDrawStripChart  
{
public:

	CDrawStripChart();
	virtual ~CDrawStripChart();

	//*************************************
	void SetLinearGaugeNum(int iNum);//设置标尺数量
	//int GetLinearGaugeNum();//设置标尺数量
	void SetLinearGaugeValueCount(int index,int iCount);//设置index的X标尺的值的数量=游标的数量
	void SetRulerParm(int index,long iMax,long iMin,long imajortics,long iminortics);//设置index的X标尺的参数
	void SetValueParm(int index,int ValueIndex,COLORREF valueColor,float value);//设置index的X标尺ValueIndex的参数
	//*************************************

	void SetStyle(int Style);//设置曲线控件的方向:纵向、横向
	int GetStyle();
	void SetRect(RECT rc,COLORREF BkColor);
	void SetX(int iXmajortics,int iXminortics,COLORREF XmajorticsColor,COLORREF XminorticsColor,int XSpan);//设置x轴主/分划线的数量以及颜色
	void SetY(int iYmajortics,int iYminortics,COLORREF YmajorticsColor,COLORREF YminorticsColor);//设置Y轴主/分划线的数量以及颜色
	void SetXYCount(int count);//设置曲线数组大小(有几个曲线数组)
	int  GetXYCount();
	//void SetXY(int Index,int iYMax,int iYMin);//设置曲线数组//,int iYDisplayMax,int iYDisplayMin);
	//void AddXY(int index,int iYMax,int iYMin,int XSpan,int Timelevel,long color,long Visibled,long lineWidth,long lineType,long Excursion,COleDateTime DateTime,long value);
	void AddXY(int index,int iYMax,int iYMin,int Timelevel,long color,long Visibled,long lineWidth,long lineType,long Excursion,COleDateTime DateTime,float value);
	void SetCursorPoint(CPoint point);
	void SetLinearGaugeVisibled(int index,int iFlag);
	long GetLinearGaugeVisibled(int index);
	void setOffTime(long offtime);
	void SetClickPoint(CPoint point,int clickFlag);
	void AddXYValue(int index,COleDateTime DateTime,float value);
	void SetXYPrt(int index,int iYMax,int iYMin,int Timelevel,long color,long Visibled,long lineWidth,long lineType,long Excursion);
	void SetLGParm(int index,int ValueIndex,COLORREF valueColor);
	void SetLGValue(int index,int ValueIndex,long value);
	//*************************************

	void DrawY(HDC hDC);
	void DrawX(HDC hDC,long offx);
	void Draw(HDC pDC);
	void DrawRect(HDC hDC);
	void DrawLGRect(HDC hDC);
	void DrawGridRect(HDC hDC);
	void DrawCurve(HDC hDC);
	void DrawCursor(HDC hDC);
	//*************************************

public:

	CArray<CDrawLinearGauge,CDrawLinearGauge> m_arrayLinearGauge;
	CArray<XYValue,XYValue>	m_ArrayXYValue;
	CArray<float,float>	m_ArrayOutValue;
	//CArray<Value,Value> m_ArrayValue;

	int	m_Orientation;//曲线方向0:左至右,1:右至左,2上至下,3下至上
	RECT m_CtlRect;
	RECT m_rect;
	RECT m_GridRect;
	RECT m_LGRect;
	COLORREF m_BkColor;//背景色
	COLORREF m_LGBkColor;//背景色
	COLORREF m_GridBkColor;//背景色
	
	long m_Style;//标尺类型,//0:百分比填充,1标尺;
	long m_rulerStyle;//标尺文字显示方式 0不显示,1左/上,2右/下,3左右/上下,4,中/左,5,中/右

	int m_iXmajortics;
	int m_iXminortics;
	COLORREF m_XmajorticsColor;
	COLORREF m_XminorticsColor;
	int m_XSpan;//Y轴范围

	int m_iYmajortics;
	int m_iYminortics;
	COLORREF m_YmajorticsColor;
	COLORREF m_YminorticsColor;

	CPoint m_Point;
	CPoint m_ClickPoint;

	long m_offTime;//断线时间:两点之间相隔多久为断线,moveto 默认60秒
	long m_offValue;//断线值:超过多少值为断线,moveto 默认2000
	int m_iDrawCursorFlag;
	int m_clickFlag;

	COleDateTime m_LastDt;
	COleDateTime m_curDt;
};

#endif // !defined(AFX_CDRAWSTRIPCHART_H__F8185ED4_A3EB_4B37_8674_E12D10C983A7__INCLUDED_)

⌨️ 快捷键说明

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