DRAWVW.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:6k
源码类别:

Windows编程

开发平台:

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. // Hints for UpdateAllViews/OnUpdate
  13. #define HINT_UPDATE_WINDOW      0
  14. #define HINT_UPDATE_DRAWOBJ     1
  15. #define HINT_UPDATE_SELECTION   2
  16. #define HINT_DELETE_SELECTION   3
  17. #define HINT_UPDATE_OLE_ITEMS   4
  18. class CDrawObj;
  19. class CDrawView : public CScrollView
  20. {
  21. protected: // create from serialization only
  22. CDrawView();
  23. DECLARE_DYNCREATE(CDrawView)
  24. // Attributes
  25. public:
  26. CDrawDoc* GetDocument()
  27. { return (CDrawDoc*)m_pDocument; }
  28. void SetPageSize(CSize size);
  29. CRect GetInitialPosition();
  30. // Operations
  31. public:
  32. void DocToClient(CRect& rect);
  33. void DocToClient(CPoint& point);
  34. void ClientToDoc(CPoint& point);
  35. void ClientToDoc(CRect& rect);
  36. void Select(CDrawObj* pObj, BOOL bAdd = FALSE);
  37. void SelectWithinRect(CRect rect, BOOL bAdd = FALSE);
  38. void Deselect(CDrawObj* pObj);
  39. void CloneSelection();
  40. void UpdateActiveItem();
  41. void InvalObj(CDrawObj* pObj);
  42. void Remove(CDrawObj* pObj);
  43. void PasteNative(COleDataObject& dataObject);
  44. void PasteEmbedded(COleDataObject& dataObject, CPoint point );
  45. // Implementation
  46. protected:
  47. // added for drop-target functionality
  48. COleDropTarget m_dropTarget;        // for drop target functionality
  49. CPoint m_dragPoint;                 // current position
  50. CSize m_dragSize;                   // size of dragged object
  51. CSize m_dragOffset;                 // offset between pt and drag object corner
  52. DROPEFFECT m_prevDropEffect;
  53. BOOL m_bDragDataAcceptable;
  54. BOOL GetObjectInfo(COleDataObject* pDataObject,
  55. CSize* pSize, CSize* pOffset);
  56. // end of drop-target additions
  57. public:
  58. virtual ~CDrawView();
  59. #ifdef _DEBUG
  60. virtual void AssertValid() const;
  61. virtual void Dump(CDumpContext& dc) const;
  62. #endif
  63. virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);  // overriden to record time/date
  64. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  65. virtual void OnActivateView(BOOL bActivate, CView* pActiveView, CView* pDeactiveView);
  66. virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
  67. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo);
  68. virtual BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll);
  69. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  70. void DrawGrid(CDC* pDC);
  71. // added for drop-target functionality
  72. virtual BOOL OnDrop(COleDataObject* pDataObject,
  73. DROPEFFECT dropEffect, CPoint point);
  74. virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject,
  75. DWORD grfKeyState, CPoint point);
  76. virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject,
  77. DWORD grfKeyState, CPoint point);
  78. virtual void OnDragLeave();
  79. static CLIPFORMAT m_cfObjectDescriptor;
  80. // end of drop-target additions
  81. static CLIPFORMAT m_cfDraw; // custom clipboard format
  82. CDrawObjList m_selection;
  83. BOOL m_bGrid;
  84. COLORREF m_gridColor;
  85. BOOL m_bActive; // is the view active?
  86. protected:
  87. virtual void OnInitialUpdate(); // called first time after construct
  88. // Printing support
  89. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  90. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  91. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  92. // OLE Container support
  93. public:
  94. virtual BOOL IsSelected(const CObject* pDocItem) const;
  95. // Generated message map functions
  96. protected:
  97. //{{AFX_MSG(CDrawView)
  98. afx_msg void OnInsertObject();
  99. afx_msg void OnCancelEdit();
  100. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  101. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  102. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  103. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  104. afx_msg void OnDrawSelect();
  105. afx_msg void OnDrawRoundRect();
  106. afx_msg void OnDrawRect();
  107. afx_msg void OnDrawLine();
  108. afx_msg void OnDrawEllipse();
  109. afx_msg void OnUpdateDrawEllipse(CCmdUI* pCmdUI);
  110. afx_msg void OnUpdateDrawLine(CCmdUI* pCmdUI);
  111. afx_msg void OnUpdateDrawRect(CCmdUI* pCmdUI);
  112. afx_msg void OnUpdateDrawRoundRect(CCmdUI* pCmdUI);
  113. afx_msg void OnUpdateDrawSelect(CCmdUI* pCmdUI);
  114. afx_msg void OnUpdateSingleSelect(CCmdUI* pCmdUI);
  115. afx_msg void OnEditSelectAll();
  116. afx_msg void OnEditClear();
  117. afx_msg void OnUpdateAnySelect(CCmdUI* pCmdUI);
  118. afx_msg void OnDrawPolygon();
  119. afx_msg void OnUpdateDrawPolygon(CCmdUI* pCmdUI);
  120. afx_msg void OnSize(UINT nType, int cx, int cy);
  121. afx_msg void OnViewGrid();
  122. afx_msg void OnUpdateViewGrid(CCmdUI* pCmdUI);
  123. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  124. afx_msg void OnObjectFillColor();
  125. afx_msg void OnObjectLineColor();
  126. afx_msg void OnObjectMoveBack();
  127. afx_msg void OnObjectMoveForward();
  128. afx_msg void OnObjectMoveToBack();
  129. afx_msg void OnObjectMoveToFront();
  130. afx_msg void OnEditCopy();
  131. afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
  132. afx_msg void OnEditCut();
  133. afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);
  134. afx_msg void OnEditPaste();
  135. afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
  136. afx_msg void OnFilePrint();
  137. afx_msg void OnSetFocus(CWnd* pOldWnd);
  138. afx_msg void OnViewShowObjects();
  139. afx_msg void OnUpdateViewShowObjects(CCmdUI* pCmdUI);
  140. afx_msg void OnEditProperties();
  141. afx_msg void OnUpdateEditProperties(CCmdUI* pCmdUI);
  142. afx_msg void OnDestroy();
  143. afx_msg void OnUpdateEditSelectAll(CCmdUI* pCmdUI);
  144. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  145. afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  146. //}}AFX_MSG
  147. DECLARE_MESSAGE_MAP()
  148. };
  149. /////////////////////////////////////////////////////////////////////////////