PlatformDoc.cpp
上传用户:easylife05
上传日期:2007-02-14
资源大小:393k
文件大小:4k
源码类别:

PlugIns编程

开发平台:

Visual C++

  1. // PlatformDoc.cpp :  CPlatformDoc 类的实现
  2. //
  3. #include "stdafx.h"
  4. #include "Platform.h"
  5. #include "PlatformDoc.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #endif
  9. // CPlatformDoc
  10. IMPLEMENT_DYNCREATE(CPlatformDoc, CDocument)
  11. BEGIN_MESSAGE_MAP(CPlatformDoc, CDocument)
  12. // ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
  13. //ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
  14. END_MESSAGE_MAP()
  15. // CPlatformDoc 构造/销毁
  16. CPlatformDoc::CPlatformDoc()
  17. {
  18. m_GraphHead=NULL;
  19. m_GraphTail=NULL;
  20. m_countGraph=0;
  21. //m_GraphHead=new myGraph;
  22. //m_GraphHead->mColor=RGB(255,0,0);
  23. //POINT pt;pt.x=100;pt.y=100;
  24. //m_GraphHead->mPt=pt; //POINT(100,100);
  25. //m_GraphHead->mRate=2;
  26. //m_GraphHead->mWidth=3;
  27. //m_GraphHead->next=NULL;
  28. }
  29. CPlatformDoc::~CPlatformDoc()
  30. {
  31. //
  32. }
  33. BOOL CPlatformDoc::OnNewDocument()
  34. {
  35. if (!CDocument::OnNewDocument())
  36. return FALSE;
  37. // TODO:在此添加重新初始化代码
  38. // (SDI 文档将重用该文档)
  39. m_GraphHead=NULL;
  40. m_GraphTail=NULL;
  41. m_countGraph=0;
  42. return TRUE;
  43. }
  44. // CPlatformDoc 序列化
  45. void CPlatformDoc::Serialize(CArchive& ar)
  46. { //----------------------------------
  47. myGraph *mGraph;
  48. mGraph=m_GraphHead;
  49. if (ar.IsStoring())
  50. {
  51. // TODO:在此添加存储代码
  52. ar<<m_countGraph;
  53. while (mGraph!=NULL)
  54. {
  55. ar<<mGraph->mWidth;
  56. ar<<mGraph->mRed;
  57. ar<<mGraph->mGreen;
  58. ar<<mGraph->mBlue;
  59. ar<<mGraph->x;
  60. ar<<mGraph->y;
  61. ar<<mGraph->mRate;
  62. mGraph=mGraph->next;
  63. }
  64. }
  65. else
  66. {
  67. // TODO:在此添加加载代码
  68. ar>>m_countGraph;
  69. m_GraphHead=NULL;//new myGraph;
  70. m_GraphTail=NULL;//m_GraphHead;
  71. for(int i=1;i<=m_countGraph;i++)
  72. {
  73. if (m_GraphHead==NULL)
  74. {
  75. m_GraphHead=new myGraph;
  76. ar>>m_GraphHead->mWidth;
  77. ar>>m_GraphHead->mRed;
  78. ar>>m_GraphHead->mGreen;
  79. ar>>m_GraphHead->mBlue;
  80. ar>>m_GraphHead->x;
  81. ar>>m_GraphHead->y;
  82. ar>>m_GraphHead->mRate;
  83. m_GraphHead->next=NULL;
  84. m_GraphTail=m_GraphHead;
  85. }
  86. else
  87. { mGraph=new myGraph;
  88. m_GraphTail->next=mGraph;
  89. m_GraphTail=mGraph;
  90. ar>>m_GraphTail->mWidth;
  91. ar>>m_GraphTail->mRed;
  92. ar>>m_GraphTail->mGreen;
  93. ar>>m_GraphTail->mBlue;
  94. ar>>m_GraphTail->x;
  95. ar>>m_GraphTail->y;
  96. ar>>m_GraphTail->mRate;
  97. m_GraphTail->next=NULL;
  98. }
  99. }
  100. }
  101. }
  102. // CPlatformDoc 诊断
  103. #ifdef _DEBUG
  104. void CPlatformDoc::AssertValid() const
  105. {
  106. CDocument::AssertValid();
  107. }
  108. void CPlatformDoc::Dump(CDumpContext& dc) const
  109. {
  110. CDocument::Dump(dc);
  111. }
  112. #endif //_DEBUG
  113. // CPlatformDoc 命令
  114. void CPlatformDoc::DeleteContents()
  115. {
  116. // TODO: 在此添加专用代码和/或调用基类
  117. myGraph* mGraph;
  118. while(m_GraphHead!=NULL)
  119. {
  120. mGraph=m_GraphHead;
  121. m_GraphHead=m_GraphHead->next;
  122. delete mGraph;
  123. }
  124. m_GraphHead=NULL;
  125. m_GraphTail=NULL;
  126. CDocument::DeleteContents();
  127. }
  128. //BOOL CPlatformDoc::OnOpenDocument(LPCTSTR lpszPathName)
  129. //{
  130. // if (!CDocument::OnOpenDocument(lpszPathName))
  131. // return FALSE;
  132. //
  133. // // TODO:  在此添加您专用的创建代码
  134. //
  135. // return TRUE;
  136. //}
  137. //void CPlatformDoc::OnFileOpen()
  138. //{
  139. //// TODO: 在此添加命令处理程序代码
  140. // static char BASED_CODE szFilter[] = "Circle Files (*.cir)|*.cir|Graph Files (*.gra)|*.gra|All Files (*.*)|*.*||";
  141. //    CFileDialog fileDlg (TRUE, "Circle files", "*.cir",OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilter, NULL);
  142. // if( fileDlg.DoModal ()==IDOK )
  143. // {
  144. // CString pathName = fileDlg.GetPathName();
  145. //
  146. // OnOpenDocument(LPCTSTR(pathName));
  147. // UpdateAllViews(NULL);
  148. //
  149. // }
  150. //}
  151. //void CPlatformDoc::OnFileOpen()
  152. //{
  153. // // TODO: 在此添加命令处理程序代码
  154. //
  155. //}