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

📄 graphisc.h

📁 一个很好的虚拟示波器!可一直接运行!他通过串口采集信号与系统单片机上的数据
💻 H
字号:
#if !defined(AFX_GRAPHISC_H__6A743144_95B4_43EE_BEBC_EEC20CF0B4D7__INCLUDED_)
#define AFX_GRAPHISC_H__6A743144_95B4_43EE_BEBC_EEC20CF0B4D7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Graphisc.h : header file
//
#include <list>
#include <iterator>
#include "Vsbq.h"



#define FREQUENCY 720

typedef struct _CoordinateRange
{
	float  xMin;        //示波器当前的X轴的最小值
	float  xMax;        //示波器当前的X轴的最大值
	float  yMin;		//示波器当前的Y轴的最小值
	float  yMax;		//示波器当前的Y轴的最大值
	short xLattice;     //示波器x分为XLATTECE等分
	short yLattice;	    //示波器y分为XLATTECE等分	
}CoordinateRange;
/////////////////////////////////////////////////////////////////////////////
// CGraphisc window

class CGraphisc// : public CStatic
{
// Construction
public:
	CGraphisc();

public:
    CString cerror;            //表述错误的字符
	long    m_valNum;
	POINT   m_valArry[1024];   //数据
	float  *m_pvalData;        //波形数据
	float   m_DownWave[256];   //下载的波形数据
	CPoint m_startPnt[FREQUENCY];
	CString m_strReceiveMsg;
	CoordinateRange   CdtRange;    //示波器结构体	

public:
	HPEN   m_noniusPen;                     // 画游标的画笔
	HPEN   m_myPen;                         // 画游标刻度的画笔
	CBrush *pBrush, *pOldBrush;
	CBrush *pBrush1, *pOldBrush1;
	CBrush *pBrush2;
	CPen m_pen;
	CPen m_pen1;
	CPen m_penPrint1;
	CPen m_penPrint2;
	bool bFontIsCreate;            // 是否创建了一种自定义字体的标志
	CFont* pLegendFont;            // 一种字体
	
	CPoint  LButtonDownPoint;      // 鼠标左键按下时的点
	CPoint  LButtonUpPoint;        // 鼠标左键松开时的点
	CRgn	m_rgnCurve;            // 标识区域
	CPoint  StartPoint;            // 示波器的左上角点
	CPoint  EndPoint;              // 示波器的右下角点
	HCURSOR m_hCursor;             // 定义一特性光标
	CPoint  m_oldMousePoint;       // 鼠标移动的当前点的前一点


	CPoint m_nonuispointS1;                 // X轴上游标1的左上角的点
	CPoint m_nonuispointE1;                 // X轴上游标1的右下角的点

	CPoint m_nonuispointS2;                 // X轴上游标2的左上角的点
	CPoint m_nonuispointE2;                 // X轴上游标2的右下角的点

	CPoint m_nonuispointYS1;                 // Y轴上游标1的左上角的点
	CPoint m_nonuispointYE1;                 // Y轴上游标1的右下角的点

	CPoint m_nonuispointYS2;                 // Y轴上游标2的左上角的点
	CPoint m_nonuispointYE2;                 // Y轴上游标2的右下角的点
	
	bool   LButtonDownFlage;       // 鼠标左键按下标志
	bool   m_bLbuttonFlage1;       // 鼠标左键是否按过游标1标志
	bool   m_bLbuttonFlage2;       // 鼠标左键是否按过游标2标志
	bool   m_bLbuttonFlage3;       // 鼠标左键是否按过游标3标志
	bool   m_bLbuttonFlage4;       // 鼠标左键是否按过游标4标志
	bool   MouseMoveFlag;          // 鼠标左键在游标区域内被按下后是否移动的标志              

public:
//	void test();
	void ComputeValueCH1();                              // 计算CH1通道的的各种数据
	void OnLButtonUp(UINT nFlags, CPoint point);         //鼠标左键弹起
	void OnMouseMove(UINT nFlags, CPoint point);         //鼠标移动
	int IsINWave(CPoint cpoint);                         //判断是否在相应的游标范围内
	void LoadCur(UINT CurName);                          //加载光标

	void LButtonDown(CPoint cPoint, int flage); 

	void Show(CDC *pDC,CPoint PointS,CPoint PointE,CRect ClientRect,
		CString flage,BOOL ColFlage);                    // 画一个示波器
	void CreateFont();
	void ChangCDT(CoordinateRange CdtRange);             // 传值函数,初始化	
	void TextShow(CDC *pDC,CPoint PointS,CPoint PointE); // 画示波器背景

	bool CreateWave(CoordinateRange CdtRange);           // 传值函数,初始化
//	CDC *pDC;
// Operations
public:
	void OnWaveFileSave();                               // 波形文件保存          
    void OnWaveFileOpen();                               // 波形文件打开
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CGraphisc)
	//}}AFX_VIRTUAL

// Implementation
public:
	void DrawWave(CDC *pDC, BOOL m_bPrintFlage);         // 画波形函数图象
	void DrawWavePrint(CDC *pDC);                        // 画打印时的  波形函数图象
	CPoint pPointArrayL[2000];                           // 用于画波形的数据(CH1) 
	CPoint pPointArrayR[2000];                           // 用于画波形的数据(CH2)
	CPoint pPointArrayLeft[2000];                        // 用于画波形的数据(CH1) 
	CPoint pPointArrayRight[2000];                       // 用于画波形的数据(CH2)
	
	void DrawCustomFuction(CDC *pDC);                    // 画自定义波形函数图象
//	void PrintChart(CDC *pDC, int x, int y);
	virtual ~CGraphisc();
private:
	void SaveWave(CString str);
	// Generated message map functions
protected:
	//{{AFX_MSG(CGraphisc)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG
//		DECLARE_MESSAGE_MAP()
};

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

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

#endif // !defined(AFX_GRAPHISC_H__6A743144_95B4_43EE_BEBC_EEC20CF0B4D7__INCLUDED_)

⌨️ 快捷键说明

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