StaticDataCurve.h
上传用户:shmeyee
上传日期:2015-06-28
资源大小:108k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #pragma once
  2. #include "PublicFunc.h"
  3. // CStaticDataCurve
  4. // 正常比例下X轴的步长
  5. #define NORMAL_SCALE_STEP_X 5
  6. // 多少字节表示一个点
  7. #define CELL_SIZE 1
  8. class CStaticDataCurve : public CStatic
  9. {
  10. DECLARE_DYNAMIC(CStaticDataCurve)
  11. public:
  12. CStaticDataCurve();
  13. virtual ~CStaticDataCurve();
  14. void DrawDataCurve(BYTE* data, int size);
  15. void SetForeColor ( COLORREF clrLinePallid, COLORREF clrLineHighlight );
  16. void SetBkColor(COLORREF clr);
  17. BOOL SetCurStartPos(int nCurStartPos);
  18. void Dynamic(int speed);
  19. void StopDynamic(void);
  20. BOOL SetScale(int nScale);
  21. int GetCurScale() { return m_nCurScale; }
  22. int GetDynamicStep() { return m_nDynamicStep; }
  23. BOOL SetDynamicStep(int nDynamicStep);
  24. int GeCurStartPos () { return m_nCurStartPos; }
  25. protected:
  26. virtual void PreSubclassWindow();
  27. afx_msg void OnPaint();
  28. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  29. DECLARE_MESSAGE_MAP()
  30. private:
  31. BYTE* m_data;
  32. int m_size;
  33. COLORREF m_clrLinePallid; // 线条暗淡色
  34. COLORREF m_clrLineHighlight; // 线条加亮色
  35. CBrush m_brsBkGnd; // 背景刷
  36. int m_nCurScale; // 当前显示比例,100表示100%
  37. int m_nCurStartPos; // 当前显示数据是从缓冲哪个位置开始的
  38. int m_nDynamicStep; // 动态显示时每次跳动的步长
  39. private:
  40. int CalcShowDataBytes(CRect& rcClient, float nStepX);
  41. BYTE* GetSingleDrawingData(CRect &rcClient, int& size);
  42. afx_msg void OnTimer(UINT_PTR nIDEvent);
  43. float CalcStepX(void);
  44. };