Day10Doc.cpp
上传用户:z_mail1980
上传日期:2007-06-01
资源大小:647k
文件大小:6k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. // Day10Doc.cpp : implementation of the CDay10Doc class
  2. //
  3. #include "stdafx.h"
  4. #include "Day10.h"
  5. #include "Day10Doc.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CDay10Doc
  13. IMPLEMENT_DYNCREATE(CDay10Doc, CDocument)
  14. BEGIN_MESSAGE_MAP(CDay10Doc, CDocument)
  15. //{{AFX_MSG_MAP(CDay10Doc)
  16. ON_COMMAND(ID_COLOR_BLACK, OnColorBlack)
  17. ON_UPDATE_COMMAND_UI(ID_COLOR_BLACK, OnUpdateColorBlack)
  18. ON_COMMAND(ID_COLOR_BLUE, OnColorBlue)
  19. ON_UPDATE_COMMAND_UI(ID_COLOR_BLUE, OnUpdateColorBlue)
  20. ON_UPDATE_COMMAND_UI(ID_COLOR_CYAN, OnUpdateColorCyan)
  21. ON_COMMAND(ID_COLOR_CYAN, OnColorCyan)
  22. ON_COMMAND(ID_COLOR_GREEN, OnColorGreen)
  23. ON_UPDATE_COMMAND_UI(ID_COLOR_GREEN, OnUpdateColorGreen)
  24. ON_COMMAND(ID_COLOR_MAGENTA, OnColorMagenta)
  25. ON_UPDATE_COMMAND_UI(ID_COLOR_MAGENTA, OnUpdateColorMagenta)
  26. ON_COMMAND(ID_COLOR_RED, OnColorRed)
  27. ON_UPDATE_COMMAND_UI(ID_COLOR_RED, OnUpdateColorRed)
  28. ON_COMMAND(ID_COLOR_WHITE, OnColorWhite)
  29. ON_UPDATE_COMMAND_UI(ID_COLOR_WHITE, OnUpdateColorWhite)
  30. ON_COMMAND(ID_COLOR_YELLOW, OnColorYellow)
  31. ON_UPDATE_COMMAND_UI(ID_COLOR_YELLOW, OnUpdateColorYellow)
  32. //}}AFX_MSG_MAP
  33. END_MESSAGE_MAP()
  34. const COLORREF CDay10Doc::m_crColors[8]={
  35. RGB(0,0,0),
  36. RGB(0,0,255),
  37. RGB(0,255,0),
  38. RGB(0,255,255),
  39. RGB(255,0,0),
  40. RGB(255,0,255),
  41. RGB(255,255,0),
  42. RGB(255,255,255)
  43. };
  44. /////////////////////////////////////////////////////////////////////////////
  45. // CDay10Doc construction/destruction
  46. CDay10Doc::CDay10Doc()
  47. {
  48. // TODO: add one-time construction code here
  49. }
  50. CDay10Doc::~CDay10Doc()
  51. {
  52. }
  53. BOOL CDay10Doc::OnNewDocument()
  54. {
  55. if (!CDocument::OnNewDocument())
  56. return FALSE;
  57. // TODO: add reinitialization code here
  58. // (SDI documents will reuse this document)
  59. m_nColor=ID_COLOR_BLACK-ID_COLOR_BLACK;
  60. return TRUE;
  61. }
  62. /////////////////////////////////////////////////////////////////////////////
  63. // CDay10Doc serialization
  64. void CDay10Doc::Serialize(CArchive& ar)
  65. {
  66. m_oaLines.Serialize(ar);
  67. }
  68. /////////////////////////////////////////////////////////////////////////////
  69. // CDay10Doc diagnostics
  70. #ifdef _DEBUG
  71. void CDay10Doc::AssertValid() const
  72. {
  73. CDocument::AssertValid();
  74. }
  75. void CDay10Doc::Dump(CDumpContext& dc) const
  76. {
  77. CDocument::Dump(dc);
  78. }
  79. #endif //_DEBUG
  80. /////////////////////////////////////////////////////////////////////////////
  81. // CDay10Doc commands
  82. CLine* CDay10Doc::AddLine(CPoint ptFrom, CPoint ptTo)
  83. {
  84. CLine *pLine=new CLine(ptFrom,ptTo,m_crColors[m_nColor]);
  85. try
  86. {
  87. m_oaLines.Add(pLine);
  88. SetModifiedFlag();
  89. }
  90. catch(CMemoryException *perr)
  91. {
  92. AfxMessageBox("Out of memory",MB_ICONSTOP|MB_OK);
  93. if(pLine)
  94. {
  95. delete pLine;
  96. pLine=NULL;
  97. }
  98. perr->Delete();
  99. }
  100. return pLine;
  101. }
  102. int CDay10Doc::GetLineCount()
  103. {
  104. return m_oaLines.GetSize();
  105. }
  106. CLine* CDay10Doc::GetLine(int nIndex)
  107. {
  108. return (CLine*)m_oaLines[nIndex];
  109. }
  110. void CDay10Doc::DeleteContents() 
  111. {
  112. // TODO: Add your specialized code here and/or call the base class
  113. int liCount=m_oaLines.GetSize();
  114. int liPos;
  115. if(liCount)
  116. {
  117. for(liPos=0;liPos<liCount;liPos++)
  118. delete m_oaLines[liPos];
  119. m_oaLines.RemoveAll();
  120. }
  121. CDocument::DeleteContents();
  122. }
  123. UINT CDay10Doc::GetColor()
  124. {
  125. return ID_COLOR_BLACK+m_nColor;
  126. }
  127. void CDay10Doc::OnColorBlack() 
  128. {
  129. // TODO: Add your command handler code here
  130. m_nColor=ID_COLOR_BLACK-ID_COLOR_BLACK;
  131. }
  132. void CDay10Doc::OnUpdateColorBlack(CCmdUI* pCmdUI) 
  133. {
  134. // TODO: Add your command update UI handler code here
  135. pCmdUI->SetCheck(GetColor()==ID_COLOR_BLACK?1:0);
  136. }
  137. void CDay10Doc::OnColorBlue() 
  138. {
  139. // TODO: Add your command handler code here
  140. m_nColor=ID_COLOR_BLUE-ID_COLOR_BLACK;
  141. }
  142. void CDay10Doc::OnUpdateColorBlue(CCmdUI* pCmdUI) 
  143. {
  144. // TODO: Add your command update UI handler code here
  145. pCmdUI->SetCheck(GetColor()==ID_COLOR_BLUE?1:0);
  146. }
  147. void CDay10Doc::OnUpdateColorCyan(CCmdUI* pCmdUI) 
  148. {
  149. // TODO: Add your command update UI handler code here
  150. pCmdUI->SetCheck(GetColor()==ID_COLOR_CYAN?1:0);
  151. }
  152. void CDay10Doc::OnColorCyan() 
  153. {
  154. // TODO: Add your command handler code here
  155. m_nColor=ID_COLOR_CYAN-ID_COLOR_BLACK;
  156. }
  157. void CDay10Doc::OnColorGreen() 
  158. {
  159. // TODO: Add your command handler code here
  160. m_nColor=ID_COLOR_GREEN-ID_COLOR_BLACK;
  161. }
  162. void CDay10Doc::OnUpdateColorGreen(CCmdUI* pCmdUI) 
  163. {
  164. // TODO: Add your command update UI handler code here
  165. pCmdUI->SetCheck(GetColor()==ID_COLOR_GREEN?1:0);
  166. }
  167. void CDay10Doc::OnColorMagenta() 
  168. {
  169. // TODO: Add your command handler code here
  170. m_nColor=ID_COLOR_MAGENTA-ID_COLOR_BLACK;
  171. }
  172. void CDay10Doc::OnUpdateColorMagenta(CCmdUI* pCmdUI) 
  173. {
  174. // TODO: Add your command update UI handler code here
  175. pCmdUI->SetCheck(GetColor()==ID_COLOR_MAGENTA?1:0);
  176. }
  177. void CDay10Doc::OnColorRed() 
  178. {
  179. // TODO: Add your command handler code here
  180. m_nColor=ID_COLOR_RED-ID_COLOR_BLACK;
  181. }
  182. void CDay10Doc::OnUpdateColorRed(CCmdUI* pCmdUI) 
  183. {
  184. // TODO: Add your command update UI handler code here
  185. pCmdUI->SetCheck(GetColor()==ID_COLOR_RED?1:0);
  186. }
  187. void CDay10Doc::OnColorWhite() 
  188. {
  189. // TODO: Add your command handler code here
  190. m_nColor=ID_COLOR_WHITE-ID_COLOR_BLACK;
  191. }
  192. void CDay10Doc::OnUpdateColorWhite(CCmdUI* pCmdUI) 
  193. {
  194. // TODO: Add your command update UI handler code here
  195. pCmdUI->SetCheck(GetColor()==ID_COLOR_WHITE?1:0);
  196. }
  197. void CDay10Doc::OnColorYellow() 
  198. {
  199. // TODO: Add your command handler code here
  200. m_nColor=ID_COLOR_YELLOW-ID_COLOR_BLACK;
  201. }
  202. void CDay10Doc::OnUpdateColorYellow(CCmdUI* pCmdUI) 
  203. {
  204. // TODO: Add your command update UI handler code here
  205. pCmdUI->SetCheck(GetColor()==ID_COLOR_YELLOW?1:0);
  206. }