DrawSysDoc.cpp
上传用户:mosfetic
上传日期:2022-06-16
资源大小:4612k
文件大小:3k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. // DrawSysDoc.cpp : implementation of the CDrawSysDoc class
  2. //
  3. #include "stdafx.h"
  4. #include "DrawSys.h"
  5. #include "DrawSysDoc.h"
  6. #include "DrawShape.h"
  7. #include "MainFrm.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CDrawSysDoc
  15. IMPLEMENT_DYNCREATE(CDrawSysDoc, CDocument)
  16. BEGIN_MESSAGE_MAP(CDrawSysDoc, CDocument)
  17. //{{AFX_MSG_MAP(CDrawSysDoc)
  18. // NOTE - the ClassWizard will add and remove mapping macros here.
  19. //    DO NOT EDIT what you see in these blocks of generated code!
  20. //}}AFX_MSG_MAP
  21. END_MESSAGE_MAP()
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CDrawSysDoc construction/destruction
  24. CDrawSysDoc::CDrawSysDoc()
  25. {
  26. // TODO: add one-time construction code here
  27. }
  28. CDrawSysDoc::~CDrawSysDoc()
  29. {
  30. }
  31. BOOL CDrawSysDoc::OnNewDocument()
  32. {
  33. if (!CDocument::OnNewDocument())
  34. return FALSE;
  35. // TODO: add reinitialization code here
  36. // (SDI documents will reuse this document)
  37. return TRUE;
  38. }
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CDrawSysDoc serialization
  41. void CDrawSysDoc::Serialize(CArchive& ar)
  42. {
  43. if (ar.IsStoring())
  44. {
  45. // TODO: add storing code here
  46. }
  47. else
  48. {
  49. // TODO: add loading code here
  50. }
  51. m_obArray.Serialize(ar);
  52. }
  53. /////////////////////////////////////////////////////////////////////////////
  54. // CDrawSysDoc diagnostics
  55. #ifdef _DEBUG
  56. void CDrawSysDoc::AssertValid() const
  57. {
  58. CDocument::AssertValid();
  59. }
  60. void CDrawSysDoc::Dump(CDumpContext& dc) const
  61. {
  62. CDocument::Dump(dc);
  63. }
  64. #endif //_DEBUG
  65. /////////////////////////////////////////////////////////////////////////////
  66. // CDrawSysDoc commands
  67. void CDrawSysDoc::AddShape(CDrawShape* pDrawShape)
  68. {
  69. if(pDrawShape)
  70. {
  71. m_obArray.Add((CObject*)pDrawShape);
  72. }
  73. }
  74. void CDrawSysDoc::DeleteContents() 
  75. {
  76. // TODO: Add your specialized code here and/or call the base class
  77. while(m_obArray.GetSize() > 0)
  78. {
  79. delete m_obArray.GetAt(0);
  80. m_obArray.RemoveAt(0);
  81. }
  82. CDocument::DeleteContents();
  83. }
  84. BOOL CDrawSysDoc::OnOpenDocument(LPCTSTR lpszPathName) 
  85. {
  86. if (!CDocument::OnOpenDocument(lpszPathName))
  87. return FALSE;
  88. // TODO: Add your specialized creation code here
  89. int iTotal = m_obArray.GetSize();
  90. CWnd* pWnd = AfxGetMainWnd();
  91. for(int i=0; i<iTotal; i++)
  92. {
  93. ((CMainFrame*)pWnd)->m_wndShapeTree.InsertShape((CDrawShape*)m_obArray.GetAt(i), i+1);
  94. }
  95. return TRUE;
  96. }