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

📄 curvehistflow.h

📁 远程视频监控系统最新程序代码
💻 H
字号:
#if !defined(AFX_CURVEHISTFLOW_H__EDAC35E1_28DC_11D5_A0AD_DE2337342E35__INCLUDED_)
#define AFX_CURVEHISTFLOW_H__EDAC35E1_28DC_11D5_A0AD_DE2337342E35__INCLUDED_

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

/////////////////////////////////////////////////////////////////////////////
// CCurveHistFlow window
#include <afxtempl.h>
#define NORMAL_POINT 0
#define BREAK_POINT  1

#define HIST_SPLITLINEXCHANGE_MESSAGE      WM_USER+11
#define HIST_CURVE_FORWARDMOVE_MESSAGE     WM_USER+12
#define HIST_CURVE_BACKMOVE_MESSAGE        WM_USER+13
#define HIST_MOVE_CURVE                    1          // 1:Redraw Curve ,2:Move Curve and Redraw a part
#define HIST_MOVE_POINT                    2

/////////////////////////////////////////////////////////////////////////////
// CCurveDynamicFlow window
class CHistChartItem:public CObject
{
public:
	CHistChartItem(){;}
	~CHistChartItem(){;}
	COLORREF m_nPenColor;
	float    m_nLower;            // lower limit
	float    m_nUpper;            // upper limit
	float    m_nBeginPos;         // current data value
	float    m_nEndPos;           // last time data value
	float    m_nPos;         
    long     m_nPosTime;          // current point time

  //long     m_nOldPosTime;       // last time point time
	short    m_nPointState;       //0:normal     1:breakpoint     2:firstpoint;
	short    m_nBeginState;        //First point state;
	short    m_nEndState;          //End point state;
	short    m_nPenStyle;  
	short    m_nPenWidth;  
	// below proterty for print 
	float*   m_pCurvePos;
	long*    m_pTime;
	short    m_nHistCount;
	char*    m_pName;
};

typedef CTypedPtrArray < CObArray,CHistChartItem* > CHistItemArray;



class CCurveHistFlow : public CWnd
{
// Construction
public:
	CCurveHistFlow();

// Attributes
public:
    
	CHistItemArray m_nItems;
	CDC m_MemDC,m_nGridMemDC;
	CBitmap m_Bitmap,*m_preBitmap;
	CBitmap m_nGridBitmap,*m_pPreGridBitmap;
	COLORREF m_nBkColor,m_nFrameColor;  //back Color and Frame Color
	short m_nPigment,m_nTimer;          // Curve moving pigment value and Timer time 
	short m_xPrimLineSum,m_yPrimLineSum;  // Primary compart line Sum x,y coordinate,
    short m_xSecLineSum,m_ySecLineSum;   // Second compart line Sum x,y coordinate,
	short m_PrimPenWidth,m_PrimPenStyle; //  Primary compart line Pen Width,Style,
	short m_SecPenWidth,m_SecPenStyle;   //  Second compart line Pen Width,Style,
	COLORREF m_SecPenColor,m_PrimPenColor;  //Primary Second compart line Pen Color
	short m_xIdentifySum,m_xIdentifySpace,m_xIdentifyWidth,m_xIdentifyCy; // x coordinate time identify amount ,Text Sapce,Text Width,and y coordinate
	COLORREF m_xIdentifyColor;  // x coordinate time identify color
    CTime m_nIndentifyInitTime,m_nIndentifyEndTime;  //x coordinate First End time
	long m_nStartTime,m_nEndTime,m_nCurrentSplitTime;  //Curve start,end time,Current line move point time;
	short m_nSplitPenWidth,m_nSplitPenStyle,m_nLineX;//split line pen's width style,and current x coordinate
	COLORREF m_nSplitPenColor;
	short m_nTimeCoordFontSize;
	char  m_nTimeCoordFontName[32];
	short m_nHeight;
	short m_nWidth;
	short m_nFrameTopH;
	short m_nFrameLeftW;
	short m_nFrameRightW;
	short m_nFrameBottomH;
    BOOL  m_nPtInSplitLine;
	CWnd  *m_pParentWnd;

// Operations
public:

	void SetHistoryPos(short nIndex,float *pAnavalArray,long *pTimeArray,short nCount);
	void DrawHistoryData();
	void SetBkFrameColor(long BkColor, long FrameColor); 
	void SetPrimCompart(short xSum, short ySum, short PenWidth, short PenStyle, long PenColor);
	void SetSecCompart(short xSum, short ySum, short PenWidth, short PenStyle, long PenColor);
	void SetXId(short xCount, long nColor,short nFontSize,char *nFontName); 
	void SetTimePigment(short nTime, short nPigment) ;
	short GetIntervalTime() {return m_nTimer;};
	void SetSplitLine(short nPenStyle, short nPenWidth, long nPenColor);
	void InitCtrl(short nHeight,short nWidth,short nFrameTopH,short nFrameLeftW,short nFrameRightW,short nFrameBottomH);
    void InvalidateCtrl(long nCurrentTime); 
	void DrawSpike(BOOL bForward);
	void Go(BOOL bForward); 
	void AddLine(long nPenColor, short nPenStyle, short nPenWidth, float nLower, float nUpper);
	void DeleteAllLine();
    void SetPos(short nIndex, float nPos, short nState, long nTime);
 
    void  SetNLineX(short nNewValue);
	short GetNLineX(){return m_nLineX;};
    long  GetCurSplitTime(){return m_nCurrentSplitTime;}; 

	short GetSplitLineTop(){return m_nFrameTopH;};
	short GetSplitLineBottom(){return m_nFrameTopH+m_nHeight;}; 
     
    void  PreparePrint(short nIndex, short nCount, long  *pTime, float *pPos, char* pName);
    void  Printer(long nStartTime, long nEndTime, long nCurTime, float * pCurPos); 
    void  EndPrint();

    long  GetStartTime(){return m_nStartTime;};
    long  GetEndTime() {return m_nEndTime;}; 
    BOOL  ptInLine(CPoint point, CPoint nPointHead, CPoint nPointTail);
	void  ResetScrollBars();
	BOOL  SetScrollPos32(int nBar, int nPos, BOOL bRedraw /* = TRUE */);
    int   GetScrollPos32(int nBar, BOOL bGetTrackPos /* = FALSE */);



// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCurveHistFlow)
	public:
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
	//}}AFX_VIRTUAL

// Implementation
public:
	void DrawGrid(CDC *pDC);
	virtual ~CCurveHistFlow();

	// Generated message map functions
protected:
	virtual void  OnDraw(CDC* pDC);
	//{{AFX_MSG(CCurveHistFlow)
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnPaint();
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

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

#endif // !defined(AFX_CURVEHISTFLOW_H__EDAC35E1_28DC_11D5_A0AD_DE2337342E35__INCLUDED_)

⌨️ 快捷键说明

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