QGISView.h
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:6k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. // QGISView.h : interface of the CQGISView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_QGISVIEW_H__00110FB6_1091_477C_ADEE_8C220E4BCED2__INCLUDED_)
  5. #define AFX_QGISVIEW_H__00110FB6_1091_477C_ADEE_8C220E4BCED2__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "QObjectsincludeQBaseObj.h"
  10. #include "QObjectsincludeQPointArray.h"
  11. #include "QObjectsincludeQEllipseObj.h"
  12. class CQLineObj;
  13. class CQBaseObj;
  14. //选择对象枚举类型
  15. enum enumSelectType
  16. {
  17. QGIS_SELECT_UNKNOWN,QGIS_SELECT_POINT,QGIS_SELECT_LINE,QGIS_SELECT_AEAR,QGIS_SELECT_LABEL,QGIS_PT_LINK_LINE
  18. };
  19. #include <vector>
  20. using std::vector;
  21. class CQGISView : public CView
  22. {
  23. protected: // create from serialization only
  24. CQGISView();
  25. DECLARE_DYNCREATE(CQGISView)
  26. // Attributes
  27. public:
  28. CQGISDoc* GetDocument();
  29. // Operations
  30. public:
  31. // Overrides
  32. // ClassWizard generated virtual function overrides
  33. //{{AFX_VIRTUAL(CQGISView)
  34. public:
  35. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  36. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  37. protected:
  38. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  39. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  40. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  41. //}}AFX_VIRTUAL
  42. // Implementation
  43. public:
  44. void FindNearestTwoPoints(int & nFirst,CQPoint * pPt,CQLineObj * pLine);
  45. CQPoint GetWEndPos();
  46. CQPoint GetWOldPos();
  47. CQPoint GetwBeginPos();
  48. CPoint GetEndPos();
  49. CPoint GetOldPos();
  50. CPoint GetBeginPos();
  51. void DrawEllipse(CQEllipseObj & ellipse,CDC * pDC);
  52. CQEllipseObj * CreateEllipse(CQEllipseObj & Ellipse);
  53. virtual ~CQGISView();
  54. CRect DrawAxis(BOOL bDraw,CDC * pDC,long &lWndX,long &lWndY); //绘制坐标轴的代码
  55. #ifdef _DEBUG
  56. virtual void AssertValid() const;
  57. virtual void Dump(CDumpContext& dc) const;
  58. #endif
  59. protected:
  60. int m_nLbtDown;    // 左键按下次数
  61. CQPoint m_ptBegin; // 起点 用于绘制橡皮线
  62. CQPoint m_ptOld;   // 旧点
  63. CQPoint m_ptEnd;   // 终点
  64. CPoint  m_ptLBegin;//逻辑坐标的起点
  65. CPoint  m_ptLOld;  //逻辑坐标的旧点
  66. CPoint  m_ptLEnd;  //逻辑坐标的终点
  67. CQPoint ptCenter;
  68. CQPointArray m_ptArray; //点集数组,用于存放临时的点对象
  69. CQEllipseObj m_Ellipse; //绘制椭圆需要的椭圆临时对象
  70. BOOL m_bDrawAxis;
  71. vector<CQBaseObj *> m_vecObj;
  72. enumSelectType m_nSelectType;     //选择类型 默认为0表示全选
  73. // Generated message map functions
  74. protected:
  75. //{{AFX_MSG(CQGISView)
  76. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  77. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  78. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  79. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  80. afx_msg void OnCancelMode();
  81. afx_msg void OnMenuAddLineQgis();
  82. afx_msg void OnMenuAddPointQgis();
  83. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  84. afx_msg void OnMenuSetMapAtt();
  85. afx_msg void OnSize(UINT nType, int cx, int cy);
  86. afx_msg void OnMenuPtSelectObjQgis();
  87. afx_msg void OnTimer(UINT nIDEvent);
  88. afx_msg void OnMenuUselectObjQgis();
  89. afx_msg void OnMenuLineAttSet();
  90. afx_msg void OnUpdateMenuLineAttSet(CCmdUI* pCmdUI);
  91. afx_msg void OnMenuRectSelectObjQgis();
  92. afx_msg void OnMenuDeleteObjQgis();
  93. afx_msg void OnMenuAddPolyline();
  94. afx_msg void OnEditButtonArrow();
  95. afx_msg void OnMenuMoveObjQgis();
  96. afx_msg void OnUpdateMenuMoveObjQgis(CCmdUI* pCmdUI);
  97. afx_msg void OnMenuHideObjQgis();
  98. afx_msg void OnUpdateMenuHideObjQgis(CCmdUI* pCmdUI);
  99. afx_msg void OnMenuShowObjQgis();
  100. afx_msg void OnMenuRotateObjQgis();
  101. afx_msg void OnUpdateMenuRotateObjQgis(CCmdUI* pCmdUI);
  102. afx_msg void OnMenuCutLineQgis();
  103. afx_msg void OnUpdateMenuCutLineQgis(CCmdUI* pCmdUI);
  104. afx_msg void OnMenuDeleteLineQgis();
  105. afx_msg void OnUpdateMenuDeleteLineQgis(CCmdUI* pCmdUI);
  106. afx_msg void OnMenuMoveLineQgis();
  107. afx_msg void OnUpdateMenuMoveLineQgis(CCmdUI* pCmdUI);
  108. afx_msg void OnUpdateMenuRotateLineQgis(CCmdUI* pCmdUI);
  109. afx_msg void OnMenuRotateLineQgis();
  110. afx_msg void OnMenuLinkLineQgis();
  111. afx_msg void OnMenuMirrorLineXQgis();
  112. afx_msg void OnMenuMirrorLineYQgis();
  113. afx_msg void OnMenuMirrorOQgis();
  114. afx_msg void OnMenuAddRectQgis();
  115. afx_msg void OnMenuLayerManagerQgis();
  116. afx_msg void OnMenuAddCircleQgis();
  117. afx_msg void OnMenuAddEllipseQgis();
  118. afx_msg void OnUpdateMenuPointAttsetQgis(CCmdUI* pCmdUI);
  119. afx_msg void OnMenuPointAttsetQgis();
  120. afx_msg void OnMenuLinkPointToLineQgis();
  121. afx_msg void OnMenuAddPolylineStream();
  122. afx_msg void OnMenuRefreshView();
  123. afx_msg void OnMenuDrawAllobjInView();
  124. afx_msg void OnMenuMoveMap();
  125. afx_msg void OnMenuAxisQgis();
  126. //}}AFX_MSG
  127. DECLARE_MESSAGE_MAP()
  128. public:
  129. afx_msg void OnUpdateMenuInterpretationCurve(CCmdUI *pCmdUI);
  130. afx_msg void OnUpdateMenuTwiceBcurve(CCmdUI *pCmdUI);
  131. afx_msg void OnUpdateMenuThirdBcurve(CCmdUI *pCmdUI);
  132. afx_msg void OnMenuInterpretationCurve();
  133. afx_msg void OnMenuTwiceBcurve();
  134. afx_msg void OnMenuThirdBcurve();
  135. afx_msg void OnMenuSelectPointQgis();
  136. afx_msg void OnMenuPtLinkToLineQgis();
  137. afx_msg void OnUpdateMenuPtLinkToLineQgis(CCmdUI *pCmdUI);
  138. afx_msg void OnMenuAddVervicalLineQgis();
  139. afx_msg void OnMenuAddHoriLineQgis();
  140. afx_msg void OnDglspkLineGetptQgis();
  141. afx_msg void OnUpdateDglspkLineGetptQgis(CCmdUI *pCmdUI);
  142. afx_msg void OnMenuAddTextQgis();
  143. afx_msg void OnMenuTextParaSet();
  144. afx_msg void OnMenuReadExcelQgis();
  145. };
  146. #ifndef _DEBUG  // debug version in QGISView.cpp
  147. inline CQGISDoc* CQGISView::GetDocument()
  148.    { return (CQGISDoc*)m_pDocument; }
  149. #endif
  150. /////////////////////////////////////////////////////////////////////////////
  151. //{{AFX_INSERT_LOCATION}}
  152. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  153. #endif // !defined(AFX_QGISVIEW_H__00110FB6_1091_477C_ADEE_8C220E4BCED2__INCLUDED_)