GraphSoftView.h
上传用户:lj3531212
上传日期:2007-06-18
资源大小:346k
文件大小:8k
源码类别:

绘图程序

开发平台:

Visual C++

  1. // GraphSoftView.h : interface of the CGraphSoftView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_GRAPHSOFTVIEW_H__53AAF3E1_0795_4348_B18E_E4F7E992594B__INCLUDED_)
  5. #define AFX_GRAPHSOFTVIEW_H__53AAF3E1_0795_4348_B18E_E4F7E992594B__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "afxtempl.h"
  10. #include "GraphDefines.h"
  11. #include "GraphSoftDoc.h"
  12. #include "Shape.h"
  13. #include "MenuEx.h"
  14. class CGraphSoftDoc;
  15. class CGraphSoftView : public CScrollView
  16. {
  17. protected: // create from serialization only
  18. CGraphSoftView();
  19. DECLARE_DYNCREATE(CGraphSoftView)
  20. // Attributes
  21. public:
  22. int                       m_nMouseFlag;//判断鼠标状态
  23.                           //0-------左右键都未按下
  24.                           //1-------左键按下
  25. bool                      m_bDrawFlag;//程序状态:画否
  26.                           //0-------不画
  27.                           //1-------画
  28. //MOUSE_STATE m_mouseStatePrev;
  29. int                       m_nCurrentPenWidth;
  30. COLORREF                  m_clrCurrentColor;
  31. COLORREF                  m_clrCurrentFill;
  32. COLORREF                  m_clrBkColor;
  33. COLORREF                  m_clrDefaultColor;
  34. //  CPoint                    m_ptPrev;
  35. // CPoint                    m_ptStart;
  36. float                     m_flPrevX;
  37. float                     m_flPrevY;
  38. float                     m_flStartX;
  39. float                     m_flStartY;
  40. // CArray<CPoint,CPoint>     m_ptArray;
  41. CArray<float,float>       m_flArrayX;
  42. CArray<float,float>       m_flArrayY;
  43.     
  44. GRAPH_OPERATION           m_graph_op;
  45. bool                      m_bGraphOp;
  46. bool                      m_bCanSelectGraphType;
  47. CPoint                    m_ptSelectGraphCenter;
  48.   //CPoint                    m_ptRotateCenter;
  49. float                     m_flRotCenterX;
  50.     float                     m_flRotCenterY;
  51.     bool                      m_bSelectRotateCenter;
  52. CRect                     m_rectSelectGraph;
  53. CShape*                   m_pCurrentShape;
  54. SHAPE_FILLSTYLE           m_shapeCurFillStyle;
  55. UINT                      m_unPrevCur;
  56. CToolBar*                 m_pToolBar;
  57. CRect                     m_rectMaxWindow;
  58. CFlRect                     m_rectTarget;
  59. float                     m_flRate;//放大的比例
  60.     CArray<float,float>       m_ArrDataPrevX;
  61. CArray<float,float>       m_ArrDataPrevY;
  62. // Operations
  63. public:
  64. void Redraw(CDC* pDC,CRect* const pRect=NULL,bool bDrawRect=FALSE,COLORREF color=RGB(0,0,0));
  65. void SetDrawMenuEnable(bool bEnable);
  66. void GraphOperator(CDC* pDC,GRAPH_OPERATION opId,float PrevX,float PrevY,float CurX,float CurY);
  67. CPoint GetSelectGraphCenter();
  68. CRect GetSelectGraphBoundaryRect(); 
  69. void DrawCut();
  70. void Lp2Dp(CPoint* pPt);//逻辑屏幕坐标--->实际屏幕坐标
  71. void Lp2Dp(CRect* pRect);
  72. void Lp2Dp(float& flX,float& flY);
  73. void Dp2Lp(CPoint* pPt);//实际屏幕坐标--->逻辑屏幕坐标
  74. void Dp2Lp(CRect* pRect);
  75. void Dp2Lp(float& flX,float& flY);
  76. CGraphSoftDoc* GetDocument(); 
  77. // Overrides
  78. // ClassWizard generated virtual function overrides
  79. //{{AFX_VIRTUAL(CGraphSoftView)
  80. public:
  81. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  82. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  83. virtual BOOL DestroyWindow();
  84. virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  85. virtual void OnInitialUpdate();
  86. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  87. protected:
  88. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  89. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  90. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  91. virtual void CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType = adjustBorder);
  92. virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
  93. //}}AFX_VIRTUAL
  94. // Implementation
  95. public:
  96. virtual ~CGraphSoftView();
  97. #ifdef _DEBUG
  98. virtual void AssertValid() const;
  99. virtual void Dump(CDumpContext& dc) const;
  100. #endif
  101. protected:
  102. // Generated message map functions
  103. protected:
  104. //{{AFX_MSG(CGraphSoftView)
  105. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  106. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  107. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  108. afx_msg void OnDrawDdaline();
  109. afx_msg void OnFileExport();
  110. afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  111. afx_msg void OnGraphMove();
  112. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  113. afx_msg void OnUpdateDrawDdaline(CCmdUI* pCmdUI);
  114. afx_msg void OnDrawRectangle();
  115. afx_msg void OnDrawRoundrect();
  116. afx_msg void OnDrawPolygon();
  117. afx_msg void OnUpdateDrawPolygon(CCmdUI* pCmdUI);
  118. afx_msg void OnUpdateDrawRectangle(CCmdUI* pCmdUI);
  119. afx_msg void OnUpdateDrawRoundrect(CCmdUI* pCmdUI);
  120. afx_msg void OnDrawEllipse();
  121. afx_msg void OnUpdateDrawEllipse(CCmdUI* pCmdUI);
  122. afx_msg void OnDrawCircle();
  123. afx_msg void OnUpdateDrawCircle(CCmdUI* pCmdUI);
  124. afx_msg void OnDrawNone();
  125. afx_msg void OnUpdateDrawNone(CCmdUI* pCmdUI);
  126. afx_msg void OnGraphMagnify();
  127. afx_msg void OnGraphRotate();
  128. afx_msg void OnGraphPropertiy();
  129. afx_msg void OnGraphDelete();
  130. afx_msg void OnGraphCopy();
  131. afx_msg void OnDestroy();
  132. afx_msg void OnSelectAll();
  133. afx_msg void OnUpdateSelectAll(CCmdUI* pCmdUI);
  134. afx_msg void OnOperationOver();
  135. afx_msg void OnUpdateGraphDelete(CCmdUI* pCmdUI);
  136. afx_msg void OnSelectPenwidth();
  137. afx_msg void OnUpdateSelectPenwidth(CCmdUI* pCmdUI);
  138. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  139. afx_msg void OnDrawParallelogram();
  140. afx_msg void OnUpdateDrawParallelogram(CCmdUI* pCmdUI);
  141. afx_msg void OnGraphRotatecenterSet();
  142. afx_msg void OnGraphRotateLeft();
  143. afx_msg void OnGraphRotateRight();
  144. afx_msg void OnUpdateGraphRotatecenterSet(CCmdUI* pCmdUI);
  145. afx_msg void OnInputConfirm();
  146. afx_msg void OnShapeOver();
  147. afx_msg void OnDrawModelcurve2avb();
  148. afx_msg void OnUpdateDrawModelcurve2avb(CCmdUI* pCmdUI);
  149. afx_msg void OnDrawModelcurve3param();
  150. afx_msg void OnUpdateDrawModelcurve3param(CCmdUI* pCmdUI);
  151. afx_msg void OnUpdateGraphCopy(CCmdUI* pCmdUI);
  152. afx_msg void OnUpdateGraphMagnify(CCmdUI* pCmdUI);
  153. afx_msg void OnUpdateGraphMove(CCmdUI* pCmdUI);
  154. afx_msg void OnUpdateGraphPropertiy(CCmdUI* pCmdUI);
  155. afx_msg void OnUpdateGraphRotate(CCmdUI* pCmdUI);
  156. afx_msg void OnDrawBeziercurve();
  157. afx_msg void OnUpdateDrawBeziercurve(CCmdUI* pCmdUI);
  158. afx_msg void OnUpdateInputConfirm(CCmdUI* pCmdUI);
  159. afx_msg void OnSelectFillColor();
  160. afx_msg void OnGraphEdit();
  161. afx_msg void OnGraphPointshide();
  162. afx_msg void OnGraphPointsshow();
  163. afx_msg void OnGraphLefttoright();
  164. afx_msg void OnGraphToptobottom();
  165. afx_msg void OnUpdateGraphToptobottom(CCmdUI* pCmdUI);
  166. afx_msg void OnUpdateGraphEdit(CCmdUI* pCmdUI);
  167. afx_msg void OnUpdateGraphLefttoright(CCmdUI* pCmdUI);
  168. afx_msg void OnUpdateGraphPointshide(CCmdUI* pCmdUI);
  169. afx_msg void OnUpdateGraphPointsshow(CCmdUI* pCmdUI);
  170. afx_msg void OnUpdateOperationOver(CCmdUI* pCmdUI);
  171. afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
  172. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  173. afx_msg void OnUpdateGraphRotateLeft(CCmdUI* pCmdUI);
  174. afx_msg void OnUpdateGraphRotateRight(CCmdUI* pCmdUI);
  175. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  176. afx_msg void OnSelGraphPoint(WPARAM wParam,LPARAM lParam);//user define
  177. afx_msg void OnSelGraphRotate(WPARAM wParam,LPARAM lParam);//user define
  178. afx_msg void OnSelGraphColor(WPARAM wParam,LPARAM lParam);//user define
  179. afx_msg void OnSelGraphFillClr(WPARAM wParam,LPARAM lParam);//user define
  180. afx_msg void OnSelGraphFillSty(WPARAM wParam,LPARAM lParam);//user define
  181. afx_msg void OnSelGraphPenWidth(WPARAM wParam,LPARAM lParam);//user define
  182. afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  183. afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  184. afx_msg void OnHelpfile();
  185. //}}AFX_MSG
  186. DECLARE_MESSAGE_MAP()
  187. };
  188. #ifndef _DEBUG  // debug version in GraphSoftView.cpp
  189. inline CGraphSoftDoc* CGraphSoftView::GetDocument()
  190.    { return (CGraphSoftDoc*)m_pDocument; }
  191. #endif
  192. /////////////////////////////////////////////////////////////////////////////
  193. //{{AFX_INSERT_LOCATION}}
  194. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  195. #endif // !defined(AFX_GRAPHSOFTVIEW_H__53AAF3E1_0795_4348_B18E_E4F7E992594B__INCLUDED_)