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

📄 curvedisp.h

📁 测井软件刻度的框价程序,对测井软件的开发有价值.
💻 H
字号:
#if !defined(AFX_CURVEDISP_H__773C3355_A5FA_4677_88B2_5BD625A1C289__INCLUDED_)
#define AFX_CURVEDISP_H__773C3355_A5FA_4677_88B2_5BD625A1C289__INCLUDED_

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

// 文件名:		CurveDisp.cpp

// 创建者:		吴正平 

// 创建时间:	2001年8月30日	
// 修改时间     2002年5月7日
// 修改时间     2002年12月15日
//为解决断线问题而做的修改(2002.12.15)
//这样也使得该程序只适应于scrollRows=1的情况
// 内容描述:   用于曲线实时显示

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

/*
  (1) 定义 CCurveDisp  m_CurDis;
  (2) 置屏幕滚动方式:m_CurDis.SetDispMode(BOOL mode);
     mode = 0  水平滚动     mode = 1 垂直滚动
  (3) 创建窗口:
	BOOL Create(DWORD dwStyle, const RECT& rect, 
		CWnd* pParentWnd, UINT nID) ;
  (4) 设置要测曲线:
	void SetSerie(int s, const char *szTitle,int scaleType,COLORREF color,
		int style, double min,double max, double coordLow,double coordHi);
  (5) 采样到新数据,使用下列函数滚动显示:
	void AddNewData(float *fValue);

  注意:

  (1) 类中只提供了上面三个public函数,其使用顺序不能颠倒
  (2) 最多显示六条曲线	
  (3) 参考坐标实际是采样点数,当一秒采样一点,则表示时间
*/

#define MAXCURVE  6

class  CCurve
{
public:
	CCurve();
	~CCurve(); //析构函数

	CString		szCurveName			;	//曲线名
	BOOL		m_bIAmInUse			;	//被使用
	BOOL		m_bIAmLine			;	//线性刻度
	COLORREF	m_color				;	// line color
	int			m_iLineStyle		;	// line style
	CPen		m_Pen				;	// pre-calculated pen (for speed)
		
	float		m_nMinValue			;	//最小值
	float		m_nMaxValue			;	//最大值
	float		m_nCoordLow			;	//坐标低边值
	float		m_nCoordHi			;	//坐标高值
	float		m_dxValuePrPixel	;	//象数/每值

	void Reset();
};

/////////////////////////////////////////////////////////////////////////////
// CCurveDisp window

class CCurveDisp : public CWnd
{
// Construction
public:
	CCurveDisp();
	virtual ~CCurveDisp();

public:
	void SetDispMode(BOOL mode);
	BOOL Create(DWORD dwStyle, const RECT& rect, 
		CWnd* pParentWnd, UINT nID) ;
	void CCurveDisp::SetSerie(int s, const char *szTitle,int scaleType,
		COLORREF color,int style, float min,float max,  
		float coordLow,float coordHi);
	void AddNewData(float *fValue);
	void InvalidateCtrl();

protected:
	void AddNewDatay(float *fValue);
	void AddNewDatax(float *fValue);
	void DrawCurve(float *fValue);
	void DrawTitlex();
	void DrawTitley();
	void DrawGridx();
	void DrawGridy();

protected:
	BOOL	bDisMode	;//为1则垂直滚动,为0则水平滚动
	BYTE	scrollRows;
	CRect	m_Client;
	CRect	m_Plot;
	WORD	bmpWd;
	WORD	bmpHi;
	CBitmap *pMemBmp;
	CDC		*pMemDc;
	CCurve	m_curves[MAXCURVE];
	BYTE	m_nCurveNum	;	//曲线总条数
	long	SamDots;		//到目前采样的总点数

	// Generated message map functions
protected:
	//{{AFX_MSG(CCurveDisp)
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnPaint();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

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

#endif // !defined(AFX_CURVEDISP_H__773C3355_A5FA_4677_88B2_5BD625A1C289__INCLUDED_)

⌨️ 快捷键说明

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