GraphViewCtl.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:3k
源码类别:

VC书籍

开发平台:

Visual C++

  1. #if !defined(AFX_GRAPHVIEWCTL_H__A1E4CA46_6539_422F_9C9E_6F4B5867B348__INCLUDED_)
  2. #define AFX_GRAPHVIEWCTL_H__A1E4CA46_6539_422F_9C9E_6F4B5867B348__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // GraphViewCtl.h : Declaration of the CGraphViewCtrl ActiveX Control class.
  7. /////////////////////////////////////////////////////////////////////////////
  8. // CGraphViewCtrl : See GraphViewCtl.cpp for implementation.
  9. class CGraphViewCtrl : public COleControl
  10. {
  11. DECLARE_DYNCREATE(CGraphViewCtrl)
  12. // Constructor
  13. public:
  14. CGraphViewCtrl();
  15. // Overrides
  16. // ClassWizard generated virtual function overrides
  17. //{{AFX_VIRTUAL(CGraphViewCtrl)
  18. public:
  19. virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
  20. virtual void DoPropExchange(CPropExchange* pPX);
  21. virtual void OnResetState();
  22. //}}AFX_VIRTUAL
  23. // Implementation
  24. protected:
  25. ~CGraphViewCtrl();
  26. DECLARE_OLECREATE_EX(CGraphViewCtrl)    // Class factory and guid
  27. DECLARE_OLETYPELIB(CGraphViewCtrl)      // GetTypeInfo
  28. DECLARE_OLECTLTYPE(CGraphViewCtrl) // Type name and misc status
  29. // Message maps
  30. //{{AFX_MSG(CGraphViewCtrl)
  31. // NOTE - ClassWizard will add and remove member functions here.
  32. //    DO NOT EDIT what you see in these blocks of generated code !
  33. //}}AFX_MSG
  34. DECLARE_MESSAGE_MAP()
  35. // Dispatch maps
  36. //{{AFX_DISPATCH(CGraphViewCtrl)
  37. OLE_COLOR m_foreColor;
  38. afx_msg void OnForeColorChanged();
  39. long m_lineType;
  40. afx_msg void OnLineTypeChanged();
  41. long m_lineWidth;
  42. afx_msg void OnLineWidthChanged();
  43. OLE_COLOR m_backColor;
  44. afx_msg void OnBackColorChanged();
  45. afx_msg void Clear();
  46. afx_msg void SetScale(double x1, double y1, double x2, double y2);
  47. afx_msg void LineTo(double x, double y);
  48. afx_msg void MoveTo(double x, double y);
  49. afx_msg void Multiline(long segments, double FAR* xi, double FAR* yi);
  50. afx_msg void DrawLine(double x1, double y1, double x2, double y2);
  51. //}}AFX_DISPATCH
  52. DECLARE_DISPATCH_MAP()
  53. // Event maps
  54. //{{AFX_EVENT(CGraphViewCtrl)
  55. //}}AFX_EVENT
  56. DECLARE_EVENT_MAP()
  57. private:
  58. //Private Members
  59. CPen* ptrPen; // Pen for drawing lines
  60. CBrush* ptrBrush; // Brush for filling areas
  61. CPoint penpos; // Current pen position
  62. //Coordinates
  63. double x1world, x2world;
  64. double y1world, y2world;
  65. double dxworld, dyworld;
  66. int dxwin, dywin;
  67. //Coord Conversion Methods
  68. CPoint WorldToWindows(double x, double y);
  69. // Dispatch and event IDs
  70. public:
  71. enum {
  72. //{{AFX_DISP_ID(CGraphViewCtrl)
  73. dispidForeColor = 1L,
  74. dispidLineType = 2L,
  75. dispidLineWidth = 3L,
  76. dispidBackColor = 4L,
  77. dispidClear = 5L,
  78. dispidSetScale = 6L,
  79. dispidLineTo = 7L,
  80. dispidMoveTo = 8L,
  81. dispidMultiline = 9L,
  82. dispidDrawLine = 10L,
  83. //}}AFX_DISP_ID
  84. };
  85. };
  86. //{{AFX_INSERT_LOCATION}}
  87. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  88. #endif // !defined(AFX_GRAPHVIEWCTL_H__A1E4CA46_6539_422F_9C9E_6F4B5867B348__INCLUDED)