MyCADInfo.cpp
上传用户:netltd
上传日期:2013-02-12
资源大小:7234k
文件大小:5k
源码类别:

绘图程序

开发平台:

Visual C++

  1. // MyCADInfo.cpp : implementation file
  2. //////////////////////////////////////////////////////////////////////////////////////////////
  3. // CCADInfo
  4. #include "stdafx.h"
  5. #include "MyCADInfo.h"
  6. //////////////////////////////////////////////////////////////////////////////////////////////
  7. CCADInfo::CCADInfo()
  8. {
  9.     char pDir[_MAX_PATH];
  10. //获取当前路径
  11. ::GetCurrentDirectory(_MAX_PATH,pDir);
  12. //省缺的项目文件路径为当前路径
  13. ProjectPath = pDir;
  14. //省缺的图纸文件路径为当前路径
  15. FilePath = pDir;
  16. IsEmpty = TRUE;
  17. KindofNew = NEW_NONE; 
  18. PenColor = RGB(0, 0, 0);           //缺省画笔颜色为黑色  
  19. LineStyle = PS_SOLID;              //缺省画笔线形
  20. //BackColor = RGB (200, 255, 255);   //缺省背景色为淡青色  
  21. BackColor = RGB (200, 200, 200);   //缺省背景色为淡青色 
  22. }
  23. CCADInfo::~CCADInfo()
  24. {
  25. }
  26. //////////////////////////////////////////////////////////////////////////////////////////////
  27. //CFileInfo
  28. IMPLEMENT_SERIAL(CFileInfo, CObject, 1)
  29. CFileInfo::CFileInfo(CString name, CString filename, CString filepath, CSize size, 
  30.  COLORREF pencolor, int linestyle, COLORREF backcolor)
  31. {
  32. m_Name = name;
  33.     m_FileName = filename;
  34. m_FilePath = filepath;
  35. m_Size = size;       
  36.     m_PenColor = pencolor;      
  37. m_LineStyle = linestyle;     
  38. m_BackColor = backcolor;     
  39. }
  40. CFileInfo::CFileInfo(const CFileInfo& Info)
  41. {
  42. m_Name = Info.m_Name;
  43. m_FileName = Info.m_FileName;
  44. m_FilePath = Info.m_FilePath;
  45. m_Size.cx = Info.m_Size.cx;
  46. m_Size.cy = Info.m_Size.cy;
  47. m_PenColor = Info.m_PenColor;
  48. m_BackColor = Info.m_BackColor;
  49. m_LineStyle = Info.m_LineStyle;
  50. }
  51. CFileInfo::operator =(const CFileInfo& Info)
  52. {
  53. m_Name = Info.m_Name;
  54. m_FileName = Info.m_FileName;
  55. m_FilePath = Info.m_FilePath;
  56. m_Size.cx = Info.m_Size.cx;
  57. m_Size.cy = Info.m_Size.cy;
  58. m_PenColor = Info.m_PenColor;
  59. m_BackColor = Info.m_BackColor;
  60. m_LineStyle = Info.m_LineStyle;
  61. }
  62. CFileInfo::~CFileInfo()
  63. {
  64. }
  65. void CFileInfo::Serialize(CArchive& ar)
  66. {
  67. if(ar.IsStoring())
  68. {
  69. ar << m_Name << m_FilePath << m_FileName << m_Size << m_PenColor 
  70.    << m_BackColor << m_LineStyle;
  71. }
  72. else
  73. {
  74. ar >> m_Name >> m_FilePath >> m_FileName >> m_Size >> m_PenColor 
  75.    >> m_BackColor >> m_LineStyle;
  76. }
  77. }
  78. //////////////////////////////////////////////////////////////////////////////////////////////
  79. IMPLEMENT_SERIAL(CFileIndex, CObject, 1)
  80. CFileIndex::CFileIndex(CString name, CString filename, CString filepath)
  81. {
  82. m_name = name;
  83. m_filename = filename;
  84. m_filepath = filepath;
  85. }
  86. CString CFileIndex::GetName()
  87. {
  88. return m_name;
  89. }
  90. CString CFileIndex::GetFileName()
  91. {
  92.    return m_filename;
  93. }
  94. CString CFileIndex::GetFilePath()
  95. {
  96.    return m_filepath;
  97. }
  98. void CFileIndex::SetFileIndex(CString name, CString filename, CString filepath)
  99. {
  100. m_name = name;
  101. m_filename = filename;
  102. m_filepath = filepath;
  103. }
  104. void CFileIndex::Serialize(CArchive &ar)
  105. {
  106. if(ar.IsStoring())
  107. {
  108. ar << m_name << m_filename << m_filepath;
  109. }
  110. else
  111. {
  112. ar >> m_name >> m_filename >> m_filepath;
  113. }
  114. }
  115. //////////////////////////////////////////////////////////////////////////////////////////////
  116. // CProjectInfo
  117. IMPLEMENT_SERIAL(CProjectInfo, CObject, 1)
  118. CProjectInfo::CProjectInfo()
  119. {
  120. }
  121. CProjectInfo::~CProjectInfo()
  122. {
  123. for(int i = 0; i < m_FileIndexArray.GetSize(); i++)
  124. delete (CFileIndex*)m_FileIndexArray.GetAt(i);
  125. m_FileIndexArray.RemoveAll();
  126. }
  127. void CProjectInfo::AddFileIndex(CString name, CString filename, CString filepath)
  128. {
  129. CFileIndex* pFileIndex = new CFileIndex(name, filename, filepath);
  130. m_FileIndexArray.Add(pFileIndex);
  131. }
  132. void CProjectInfo::DelFileIndex(CString name)
  133. {
  134. for(int i = 0; i < m_FileIndexArray.GetSize(); i++)
  135. {
  136. CFileIndex* pFileIndex = (CFileIndex*)m_FileIndexArray.GetAt(i);
  137. if(pFileIndex->GetFileName() == name)
  138. {
  139. delete pFileIndex;
  140. m_FileIndexArray.RemoveAt(i);
  141. }
  142. }
  143. }
  144. int CProjectInfo::GetFileIndexNum()
  145. {
  146. return m_FileIndexArray.GetSize();
  147. }
  148. CFileIndex* CProjectInfo::GetFileIndex(int index)
  149. {
  150. ASSERT(index >= 0 && index < m_FileIndexArray.GetSize());
  151. return (CFileIndex*)m_FileIndexArray.GetAt(index);
  152. }
  153. CFileIndex* CProjectInfo::FindFileIndex(CString name)
  154. {
  155. //name是图纸名
  156. for(int i = 0; i < m_FileIndexArray.GetSize(); i++)
  157. {
  158. CFileIndex* pFileIndex = (CFileIndex*)m_FileIndexArray.GetAt(i);
  159. if(pFileIndex->GetName() == name)
  160. return pFileIndex;
  161. }
  162. return NULL;
  163. }
  164. void CProjectInfo::Serialize(CArchive& ar)
  165. {
  166. if(ar.IsStoring())
  167. {
  168. ar << Name << FileName << FilePath;
  169. }
  170. else
  171. {
  172. ar >> Name >> FileName >> FilePath;
  173. }
  174. m_FileIndexArray.Serialize(ar);
  175. }