📄 curvehistflow.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 + -