DRAWVW.H
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:7k
源码类别:

界面编程

开发平台:

Visual C++

  1. // drawvw.h : interface of the CDrawView class
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. #ifndef __AFXPRIV_H__
  13. #include <AfxPriv.h>
  14. #endif
  15. #if (!defined __EXT_HOOK_H)
  16. #include <../Src/ExtHook.h>
  17. #endif
  18. // Hints for UpdateAllViews/OnUpdate
  19. #define HINT_UPDATE_WINDOW 0
  20. #define HINT_UPDATE_DRAWOBJ 1
  21. #define HINT_UPDATE_SELECTION 2
  22. #define HINT_DELETE_SELECTION 3
  23. #define HINT_UPDATE_OLE_ITEMS 4
  24. #define HINT_UPDATE_TOOLBAR_COLOR_BUTTONS 5
  25. class CDrawObj;
  26. #if (!defined __EXT_MFC_NO_PRINT)
  27. typedef CExtPPVW < CScrollView > __BASE_OF_CDrawView__;
  28. #else
  29. typedef CScrollView __BASE_OF_CDrawView__;
  30. #endif
  31. class CDrawView : public __BASE_OF_CDrawView__
  32. {
  33. protected: // create from serialization only
  34. CDrawView();
  35. DECLARE_DYNCREATE(CDrawView)
  36. // Attributes
  37. public:
  38. CDrawDoc* GetDocument()
  39. { return (CDrawDoc*)m_pDocument; }
  40. void SetPageSize(CSize size);
  41. CRect GetInitialPosition();
  42. //CExtScrollBar m_wndScrollBarH, m_wndScrollBarV;
  43. // Operations
  44. public:
  45. void DocToClient(CRect& rect);
  46. void DocToClient(CPoint& point);
  47. void ClientToDoc(CPoint& point);
  48. void ClientToDoc(CRect& rect);
  49. void Select(CDrawObj* pObj, BOOL bAdd = FALSE);
  50. void SelectWithinRect(CRect rect, BOOL bAdd = FALSE);
  51. void Deselect(CDrawObj* pObj);
  52. void CloneSelection();
  53. void UpdateActiveItem();
  54. void InvalObj(CDrawObj* pObj);
  55. void Remove(CDrawObj* pObj);
  56. void PasteNative(COleDataObject& dataObject);
  57. void PasteEmbedded(COleDataObject& dataObject, CPoint point );
  58. // Implementation
  59. protected:
  60. // added for drop-target functionality
  61. COleDropTarget m_dropTarget;        // for drop target functionality
  62. CPoint m_dragPoint;                 // current position
  63. CSize m_dragSize;                   // size of dragged object
  64. CSize m_dragOffset;                 // offset between pt and drag object corner
  65. DROPEFFECT m_prevDropEffect;
  66. BOOL m_bDragDataAcceptable;
  67. BOOL GetObjectInfo(COleDataObject* pDataObject,
  68. CSize* pSize, CSize* pOffset);
  69. // end of drop-target additions
  70. public:
  71. virtual ~CDrawView();
  72. #ifdef _DEBUG
  73. virtual void AssertValid() const;
  74. virtual void Dump(CDumpContext& dc) const;
  75. #endif
  76. virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);  // overriden to record time/date
  77. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  78. virtual void OnActivateView(BOOL bActivate, CView* pActiveView, CView* pDeactiveView);
  79. virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  80. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo);
  81. virtual BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll);
  82. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  83. void DrawGrid(CDC* pDC);
  84. // added for drop-target functionality
  85. virtual BOOL OnDrop(COleDataObject* pDataObject,
  86. DROPEFFECT dropEffect, CPoint point);
  87. virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject,
  88. DWORD grfKeyState, CPoint point);
  89. virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject,
  90. DWORD grfKeyState, CPoint point);
  91. virtual void OnDragLeave();
  92. static CLIPFORMAT m_cfObjectDescriptor;
  93. // end of drop-target additions
  94. static CLIPFORMAT m_cfDraw; // custom clipboard format
  95. CDrawObjList m_selection;
  96. BOOL m_bGrid;
  97. COLORREF m_gridColor;
  98. BOOL m_bActive; // is the view active?
  99. void SyncToolbarObjButtons();
  100. protected:
  101. virtual void OnInitialUpdate(); // called first time after construct
  102. // Printing support
  103. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  104. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  105. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  106. public:
  107. virtual CScrollBar* GetScrollBarCtrl(int nBar) const;
  108. // OLE Container support
  109. public:
  110. virtual BOOL IsSelected(const CObject* pDocItem) const;
  111. // Generated message map functions
  112. protected:
  113. //{{AFX_MSG(CDrawView)
  114. afx_msg void OnInsertObject();
  115. afx_msg void OnCancelEditCntr();
  116. afx_msg void OnCancelEditSrvr();
  117. afx_msg void OnCancelEdit();
  118. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  119. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  120. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  121. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  122. afx_msg void OnDrawSelect();
  123. afx_msg void OnDrawRoundRect();
  124. afx_msg void OnDrawRect();
  125. afx_msg void OnDrawLine();
  126. afx_msg void OnDrawEllipse();
  127. afx_msg void OnUpdateDrawEllipse(CCmdUI* pCmdUI);
  128. afx_msg void OnUpdateDrawLine(CCmdUI* pCmdUI);
  129. afx_msg void OnUpdateDrawRect(CCmdUI* pCmdUI);
  130. afx_msg void OnUpdateDrawRoundRect(CCmdUI* pCmdUI);
  131. afx_msg void OnUpdateDrawSelect(CCmdUI* pCmdUI);
  132. afx_msg void OnUpdateSingleSelect(CCmdUI* pCmdUI);
  133. afx_msg void OnEditSelectAll();
  134. afx_msg void OnEditClear();
  135. afx_msg void OnUpdateAnySelect(CCmdUI* pCmdUI);
  136. afx_msg void OnDrawPolygon();
  137. afx_msg void OnUpdateDrawPolygon(CCmdUI* pCmdUI);
  138. afx_msg void OnSize(UINT nType, int cx, int cy);
  139. afx_msg void OnViewGrid();
  140. afx_msg void OnUpdateViewGrid(CCmdUI* pCmdUI);
  141. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  142. afx_msg void OnObjectFillColor();
  143. afx_msg void OnObjectLineColor();
  144. afx_msg void OnObjectMoveBack();
  145. afx_msg void OnObjectMoveForward();
  146. afx_msg void OnObjectMoveToBack();
  147. afx_msg void OnObjectMoveToFront();
  148. afx_msg void OnEditCopy();
  149. afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
  150. afx_msg void OnEditCut();
  151. afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);
  152. afx_msg void OnEditPaste();
  153. afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
  154. afx_msg void OnSetFocus(CWnd* pOldWnd);
  155. afx_msg void OnViewShowObjects();
  156. afx_msg void OnUpdateViewShowObjects(CCmdUI* pCmdUI);
  157. afx_msg void OnEditProperties();
  158. afx_msg void OnUpdateEditProperties(CCmdUI* pCmdUI);
  159. afx_msg void OnDestroy();
  160. afx_msg void OnUpdateEditSelectAll(CCmdUI* pCmdUI);
  161. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  162. afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  163. afx_msg void OnUpdateDocLineWidth(CCmdUI* pCmdUI);
  164. //}}AFX_MSG
  165. afx_msg LRESULT OnExtMenuPrepare(WPARAM wParam, LPARAM lParam);
  166. afx_msg LRESULT OnColorChangedFinally(WPARAM wParam, LPARAM lParam);
  167. afx_msg LRESULT OnColorSelectCustom(WPARAM wParam, LPARAM lParam);
  168. afx_msg void OnUpdateSelectionSingle(CCmdUI* pCmdUI);
  169. afx_msg void OnUpdateSelectionNonEmpty(CCmdUI* pCmdUI);
  170. afx_msg void OnLineWidth( UINT nCmdID );
  171. afx_msg void OnUpdateLineWidth( CCmdUI * pCmdUI );
  172. afx_msg LRESULT OnDrawPopupMenuItem(WPARAM wParam, LPARAM lParam);
  173. DECLARE_MESSAGE_MAP()
  174. #if (defined __EXT_MFC_NO_PRINT)
  175. bool IsPrintPreviewMode() const
  176. {
  177. return false;
  178. }
  179. #endif // (defined __EXT_MFC_NO_PRINT)
  180. }; // class CDrawView
  181. /////////////////////////////////////////////////////////////////////////////