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

界面编程

开发平台:

Visual C++

  1. // drawdoc.h : interface of the CDrawDoc 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. #include "drawobj.h"
  13. #include "summinfo.h"
  14. class CDrawDoc;
  15. class CDrawView;
  16. class CDrawCntrItem;
  17. class CDrawSrvrItem;
  18. class CDrawDoc : public COleServerDoc
  19. {
  20. protected: // create from serialization only
  21. CDrawDoc();
  22. DECLARE_DYNCREATE(CDrawDoc)
  23. // Attributes
  24. public:
  25. CDrawObjList* GetObjects() { return &m_objects; }
  26. const CSize& GetSize() const { return m_size; }
  27. void ComputePageSize();
  28. int GetMapMode() const { return m_nMapMode; }
  29. COLORREF GetPaperColor() const { return m_paperColor; }
  30. CSummInfo *m_pSummInfo;
  31. CDrawSrvrItem* GetEmbeddedItem()
  32. { return (CDrawSrvrItem*)COleServerDoc::GetEmbeddedItem(); }
  33. protected:
  34. virtual COleServerItem* OnGetEmbeddedItem();
  35. // Operations
  36. public:
  37. CDrawObj* ObjectAt(const CPoint& point);
  38. void Draw(CDC* pDC, CDrawView* pView);
  39. void Add(CDrawObj* pObj);
  40. void Remove(CDrawObj* pObj);
  41. // Implementation
  42. public:
  43. virtual ~CDrawDoc();
  44. virtual void Serialize(CArchive& ar);   // overridden for document i/o
  45. #ifdef _DEBUG
  46. virtual void AssertValid() const;
  47. virtual void Dump(CDumpContext& dc) const;
  48. #endif
  49. protected:
  50. virtual BOOL OnNewDocument();
  51. virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
  52. virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
  53. CDrawObjList m_objects;
  54. CSize m_size;
  55. int m_nMapMode;
  56. COLORREF m_paperColor;
  57. // Generated message map functions
  58. protected:
  59. //{{AFX_MSG(CDrawDoc)
  60. afx_msg void OnViewPaperColor();
  61. afx_msg void OnFileSummaryInfo();
  62. //}}AFX_MSG
  63. DECLARE_MESSAGE_MAP()
  64. };
  65. class CDrawCntrItem : public COleClientItem
  66. {
  67. DECLARE_SERIAL(CDrawCntrItem)
  68. // Constructors
  69. public:
  70. CDrawCntrItem(CDrawDoc* pContainer = NULL);
  71. // Note: pContainer is allowed to be NULL to enable IMPLEMENT_SERIALIZE.
  72. //  IMPLEMENT_SERIALIZE requires the class have a constructor with
  73. //  zero arguments.  Normally, OLE items are constructed with a
  74. //  non-NULL document pointer.
  75. // Attributes
  76. public:
  77. CDrawDoc* GetDocument()
  78. { return (CDrawDoc*)COleClientItem::GetDocument(); }
  79. CDrawView* GetActiveView()
  80. { return (CDrawView*)COleClientItem::GetActiveView(); }
  81. // ClassWizard generated virtual function overrides
  82. //{{AFX_VIRTUAL(CDrawCntrItem)
  83. public:
  84. virtual void OnChange(OLE_NOTIFICATION wNotification, DWORD dwParam);
  85. virtual void OnActivate();
  86. protected:
  87. virtual void OnGetItemPosition(CRect& rPosition);
  88. virtual void OnDeactivateUI(BOOL bUndoable);
  89. virtual BOOL OnChangeItemPosition(const CRect& rectPos);
  90. virtual BOOL CanActivate();
  91. //}}AFX_VIRTUAL
  92. // Implementation
  93. public:
  94. ~CDrawCntrItem();
  95. #ifdef _DEBUG
  96. virtual void AssertValid() const;
  97. virtual void Dump(CDumpContext& dc) const;
  98. #endif
  99. virtual void Serialize(CArchive& ar);
  100. };
  101. class CDrawSrvrItem : public COleServerItem
  102. {
  103. DECLARE_DYNAMIC(CDrawSrvrItem)
  104. // Constructors
  105. public:
  106. CDrawSrvrItem(CDrawDoc* pContainerDoc);
  107. // Attributes
  108. CDrawDoc* GetDocument() const
  109. { return (CDrawDoc*)COleServerItem::GetDocument(); }
  110. // Overrides
  111. // ClassWizard generated virtual function overrides
  112. //{{AFX_VIRTUAL(CDrawSrvrItem)
  113. public:
  114. virtual BOOL OnDraw(CDC* pDC, CSize& rSize);
  115. virtual BOOL OnGetExtent(DVASPECT dwDrawAspect, CSize& rSize);
  116. //}}AFX_VIRTUAL
  117. // Implementation
  118. public:
  119. ~CDrawSrvrItem();
  120. #ifdef _DEBUG
  121. virtual void AssertValid() const;
  122. virtual void Dump(CDumpContext& dc) const;
  123. #endif
  124. protected:
  125. virtual void Serialize(CArchive& ar);   // overridden for document i/o
  126. };
  127. /////////////////////////////////////////////////////////////////////////////