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

📄 displaywindow.h

📁 最新的USB示波器源码?可直接编译生成可执行程序,需要硬件支持
💻 H
字号:
#if !defined(AFX_DISPLAYWINDOW_H__FC97F5C2_5127_11D6_A757_00055DA07630__INCLUDED_)
#define AFX_DISPLAYWINDOW_H__FC97F5C2_5127_11D6_A757_00055DA07630__INCLUDED_

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

//#include "DataDevice.h"
/////////////////////////////////////////////////////////////////////////////
// DisplayWindow window
#include <afxmt.h>
//#include "ezusbsys.h"	// Added by ClassView

typedef struct _THREAD_CONTROL
{
   HANDLE hDevice;
   DWORD Ioctl;
   PVOID InBuffer;
   DWORD InBufferSize;
   PVOID OutBuffer;
   DWORD OutBufferSize;
   DWORD BytesReturned;
   HANDLE completionEvent;
   BOOL  status;
} THREAD_CONTROL, *PTHREAD_CONTROL;

#define SAMPLE_DEPTH 2048

typedef  struct PageD
{  
   unsigned char cha_data[SAMPLE_DEPTH];
   PageD * up; 	
   PageD * next;
   HGLOBAL hHandle;
}  PAGEDATA;

#define H 20
#define ST 95
#define S 4


//#define XOFFSIZE  60
//#define YOFFSIZE  60


class DisplayWindow : public CStatic
{
	DECLARE_DYNCREATE(DisplayWindow)

// Construction
public:
	DisplayWindow();
	
    PAGEDATA * pagedata,* pagedata_start,* pg; 
	
	HCURSOR m_hCursor1,m_hCursor2;
	
	
//	CEvent comEventDraw;
//	float zongbei;
//	int speed;
//	int ps,Lr,Rr;
//	int X_B,X_H,X_S,X_I,X_D,X_E,X_b,X_h,X_s,X_i,X_d,X_e;
//
    unsigned int cntB,cntX;
   
    BYTE ord[8];

	BOOL SelectT;
	int ht[256];
	
	CRect  disRect;
	BOOL dis_Flag,dis_DyRound;
	
	int mouse_x,mouse_y;	
	int stp,disDyRound;
	int offset;    //显示偏移
	int trig_sit;  //触发位置
	int trig_level;
	BOOL firstdiswindow;
	CString dismes;
    float sampleFt;

	//	CEvent comEventEnd;
// Attributes
public:
// Operations
public:
	CEvent  comEventStart;
	BOOL Caiyang,Play,L_and_R,Play_First,DrawLineFlag;
    BOOL  Kill_Theard,Kill_Play;
	HCURSOR m_hCursor_H,m_hCursor_V;
	float db,xindian_db;
	int hh,ww,h_st,w_st,step,page;
	int point [5][760];
    BOOL isRecord;
	
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(DisplayWindow)
	public:
	virtual void OnFinalRelease();
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
	virtual BOOL DestroyWindow();
	protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL
protected:
    CBrush	m_HollowBrush;
    HANDLE  hUsbInDevice;
   
	CRect   cha_arrow_rect,chb_arrow_rect;
    BYTE    scaleline_mode;
	///测量线参数
	int LeftScaleSit,RightScaleSit,UpScaleSit,DownScaleSit;

	 CRect rcClip;
	 int cha_offset;
	 int chb_offset;
     BOOL cha_on;
	 BOOL chb_on;
     BOOL trigger_line_on;
   	 int m_cha_vlot_div;
   	 int m_chb_vlot_div;
	 int m_time_div;
	 BOOL isDrawOther;

//	 BOOL disScaleLine;


CPoint m_ptCaretPos,draw[5];

// Implementation
public:
	void GetChxFreq(BYTE d[],int * left_sit,int * cnt_sit,int * right_sit,int * rise_w,int * fall_w,BYTE top_d,BYTE bottom_d);
   
	void Play_Next();
	void Play_Back();
	void Recall(void);
	void RecordWave(BOOL flag);
     BOOL SendCommandToUSB(BYTE * cmd_buffer,BYTE order);
	void SetTriggerLevel(WORD v);
	void SetChbVlot_Div(int v);
	void SetChaVlot_Div(int v);
	void DrawRectForText(CDC *pDC,int x,int y,CString title,CString  str1,CString str2);
	void SetTime_Div(int i);
	void OpenScaleLine(BYTE mode);
	BOOL SetChb_ON_OFF(BOOL isOn);
	BOOL SetCha_ON_OFF(BOOL isOn);
	void DisTrig_sit(CDC *pDC,int y);
	void DrawIcurrenWave();
	void DisScaleLine();
	CRect DisRect;
	void DisLeftAxis(CDC * pDC,int x,int y);
	void DisVoltage(CDC *pDC,int x,int y,int w,int h);
	BOOL DrawDispBack(CDC *pDC,int Width,int Height);
	BYTE m_nTriggerType;
	int Trigger();
	void StopAD();
	void PauseAD();
	void StartAD();
	void GetBackToBmp();
	BOOL GetADdata(HANDLE hDevice);
	BOOL UsbOpenDriver (HANDLE *phDeviceHandle, PCHAR devicename);
	void GetFenXinData();
	BOOL DrwaDyRrand(int s);
	BOOL GetDYData();
	BOOL GetDinBiaoData(int x);
	void ReDrawSCreen();
	void DisDinBiaoLine(CDC * pDC);
	
	void DrawViewLine(int x);
	BOOL DeletePage();
	BOOL RecFlag;
	void DrawLine();
	void DisPageData(BOOL up_next);
	BOOL AddPage();
	void DisMes(CString mes);
	void line(int xx);
	void ReDraw();
	int hz;
	virtual ~DisplayWindow();

	// Generated message map functions
protected:
	void DrawXYgraph(CDC *pDC);
	void DrawYTgraph(CDC *pDC);
	CString GetFreqFromString(int time_w);
	void DisplayZhiFuGrap(CDC *pdc);
	BYTE Intrepol_sin(int t, LPBYTE pbuf, int s_T);
	void GetFreq(int chx,int * left_sit,int * right_sit);
	CString GetFreqString(int RightScaleSit,int LeftScaleSit);

	void DisScaleLine(CDC *pDC,int x,int y,int w,int h);
	BYTE Select;
	void DisTopAxis(CDC * pDC, int x,int y);
	void DisTimeVlem(CDC *pDC,int x,int y,int w,int h);
	void TransferThread( PTHREAD_CONTROL threadControl);
	void draw_line(CDC * pDC,int x,BOOL flag,char F);
	//{{AFX_MSG(DisplayWindow)
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnPaint();
	afx_msg void DrawLineGraph(WPARAM wParam, LPARAM lParam);
	afx_msg UINT OnNcHitTest(CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
	DECLARE_OLECREATE(DisplayWindow)

	// Generated OLE dispatch map functions
	//{{AFX_DISPATCH(DisplayWindow)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_DISPATCH
	DECLARE_DISPATCH_MAP()
	DECLARE_INTERFACE_MAP()
};

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

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

#endif // !defined(AFX_DISPLAYWINDOW_H__FC97F5C2_5127_11D6_A757_00055DA07630__INCLUDED_)

⌨️ 快捷键说明

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