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

📄 curvedevice.h

📁 上位机图形显示程序,可用于8051单片机的开发,通信及控制
💻 H
字号:
/////////////////////////////////////////////////////////
//			曲线显示设备CurveDevice封装类
//	版本:1.03
//	最后修改日期:2002.1.25
/////////////////////////////////////////////////////////

#if !defined(AFX_CURVEDEVICE_H__E9248991_858F_4F37_83CB_FFB020C845AE__INCLUDED_)
#define AFX_CURVEDEVICE_H__E9248991_858F_4F37_83CB_FFB020C845AE__INCLUDED_

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

#define PI	3.14159265	//圆周率
#define ANG	PI/180 		//1度的角度相对的弧度值

//下面的宏定义了仪表的当前状态
#define CD_TEST		0	//仪表的自检状态,绘制余弦曲线
#define CD_WORK		1	//仪表的工作状态,每过单位抽样时间检测一次数值
#define CD_SHUTDOWN	2	//仪表的关闭状态,不作任何反映

//下面的宏定义了仪表的工作方式
#define CD_REALTIME	0	//绘制实时曲线
#define CD_STATIC	1	//绘制静态曲线

//下面的宏定义了仪表的放置方式
#define CD_HORIZONTAL	0	//水平放置(从右向左)
#define CD_VERTICAL		1	//垂直放置(从下向上)

/////////////////////////////////////////////////////////////////////////////
// CurveDevice window

class CurveDevice : public CStatic
{
// Construction
public:
	CurveDevice(CWnd * parent);

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CurveDevice)
	//}}AFX_VIRTUAL

// Implementation
public:
	void CD_SetWorkMode(UINT mode);
	void CD_SetPlaceMode(UINT mode);
	void CD_SetMaxNumber(double number);
	void CD_SetCurveColor(COLORREF color);
	void CD_SetGridColor(COLORREF color);
	void CD_SetAxleColor(COLORREF color);
	void CD_SetBdColor(COLORREF lightcolor, COLORREF darkcolor);
	void CD_SetBkColor(COLORREF color);
	void CD_SetBorderStyle(UINT left, UINT top, UINT right, UINT bottom);
	void CD_SetStepLength(UINT length);
	void CD_SetAxleLength(UINT length);
	void CD_SetBorderWidth(UINT width);
	void CD_SetGridNumber(UINT x_number, UINT y_number);
	void CD_SetGridSize(UINT x_width, UINT y_width);
	void CD_SetOrigin(int x, int y);
	void CD_SetSize(UINT width, UINT height);
	void CD_SetTimer(UINT time);
	void CD_SetCurrentNumber(double number);
	void CD_SetStatus(UINT status);
	void CD_SetRecordLength(UINT length);
	void CD_MoveWindow(int x, int y);
	virtual ~CurveDevice();

	// Generated message map functions
protected:
	//{{AFX_MSG(CurveDevice)
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnPaint();
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
private:
	UINT CD_WorkMode;		//仪表的工作方式
	UINT CD_PlaceMode;		//仪表的放置方式
	UINT CD_Status;			//仪表当前的状态
	UINT CD_Height;			//仪表的高度
	UINT CD_Width;			//仪表的宽度
	UINT CD_Timer;			//仪表的内部计时器触发时间间隔,单位毫秒
	double CD_TestAngle;	//仪表测试状态下的余弦角度
	CPoint CD_Origin;		//仪表内部坐标系的原点(相对于左上角)

	COLORREF CD_CurveColor;	//实时曲线的颜色
	COLORREF CD_BkColor;	//仪表的背景颜色
	COLORREF CD_GridColor;	//背景网格的颜色
	COLORREF CD_AxleColor;	//坐标轴的颜色
	
	UINT CD_StepLength;		//采样点在X轴方向的步长
	UINT CD_AxleLength;		//仪表函数值对应的轴的长度
	UINT CD_YGridLength;	//Y轴方向网格宽度
	UINT CD_XGridLength;	//X轴方向网格宽度
	UINT CD_YGridNum;		//Y轴方向网格个数
	UINT CD_XGridNum;		//X轴方向网格个数

	int * CD_Record;		//仪表记录数组的指针
	DWORD CD_RecordStartPos;	//仪表记录数组的当前起始位置
	UINT CD_RecordLength;	//仪表记录数组的长度
	
	double CD_CurrentNumber;	//仪表要显示的当前数值
	double CD_MaxNumber;		//仪表的正半轴最大示数
	
	UINT CD_BorderWidth;	//仪表边框的宽度
	UINT CD_BorderRight;	//该变量决定仪表右边边框是否显示
	UINT CD_BorderLeft;		//该变量决定仪表左边边框是否显示
	UINT CD_BorderBottom;	//该变量决定仪表底部边框是否显示
	UINT CD_BorderTop;		//该变量决定仪表顶部边框是否显示
	COLORREF CD_BdLightColor;	//仪表边框亮部颜色
	COLORREF CD_BdDarkColor;	//仪表边框的暗部颜色

	void DrawFace(void);
};

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

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

#endif // !defined(AFX_CURVEDEVICE_H__E9248991_858F_4F37_83CB_FFB020C845AE__INCLUDED_)

⌨️ 快捷键说明

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