ex61View.cpp
上传用户:qdhmjx
上传日期:2022-07-11
资源大小:2226k
文件大小:3k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // ex61View.cpp : implementation of the CEx61View class
  2. //
  3. #include "stdafx.h"
  4. #include "ex61.h"
  5. #include "ex61Doc.h"
  6. #include "ex61View.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CEx61View
  14. IMPLEMENT_DYNCREATE(CEx61View, CView)
  15. BEGIN_MESSAGE_MAP(CEx61View, CView)
  16. //{{AFX_MSG_MAP(CEx61View)
  17. ON_COMMAND(ID_ELLIPSE, OnEllipse)
  18. ON_COMMAND(ID_RECTANGLE, OnRectangle)
  19. ON_UPDATE_COMMAND_UI(ID_ELLIPSE, OnUpdateEllipse)
  20. ON_UPDATE_COMMAND_UI(ID_RECTANGLE, OnUpdateRectangle)
  21. ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
  22. ON_COMMAND(ID_EDIT_CUT, OnEditCut)
  23. ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
  24. ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste)
  25. ON_COMMAND(ID_TEXT, OnText)
  26. //}}AFX_MSG_MAP
  27. // Standard printing commands
  28. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  29. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  30. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  31. END_MESSAGE_MAP()
  32. /////////////////////////////////////////////////////////////////////////////
  33. // CEx61View construction/destruction
  34. CEx61View::CEx61View()
  35. {
  36. flag=-1;
  37. m_bEditPaste=FALSE;
  38. }
  39. CEx61View::~CEx61View()
  40. {
  41. }
  42. BOOL CEx61View::PreCreateWindow(CREATESTRUCT& cs)
  43. {
  44. // TODO: Modify the Window class or styles here by modifying
  45. //  the CREATESTRUCT cs
  46. return CView::PreCreateWindow(cs);
  47. }
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CEx61View drawing
  50. void CEx61View::OnDraw(CDC* pDC)
  51. {
  52. CEx61Doc* pDoc = GetDocument();
  53. ASSERT_VALID(pDoc);
  54. // TODO: add draw code for native data here
  55. }
  56. /////////////////////////////////////////////////////////////////////////////
  57. // CEx61View printing
  58. BOOL CEx61View::OnPreparePrinting(CPrintInfo* pInfo)
  59. {
  60. // default preparation
  61. return DoPreparePrinting(pInfo);
  62. }
  63. void CEx61View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  64. {
  65. // TODO: add extra initialization before printing
  66. }
  67. void CEx61View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  68. {
  69. // TODO: add cleanup after printing
  70. }
  71. /////////////////////////////////////////////////////////////////////////////
  72. // CEx61View diagnostics
  73. #ifdef _DEBUG
  74. void CEx61View::AssertValid() const
  75. {
  76. CView::AssertValid();
  77. }
  78. void CEx61View::Dump(CDumpContext& dc) const
  79. {
  80. CView::Dump(dc);
  81. }
  82. CEx61Doc* CEx61View::GetDocument() // non-debug version is inline
  83. {
  84. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEx61Doc)));
  85. return (CEx61Doc*)m_pDocument;
  86. }
  87. #endif //_DEBUG
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CEx61View message handlers
  90. void CEx61View::OnEllipse() 
  91. {
  92. Invalidate();//清除窗口内容
  93. UpdateWindow();
  94. CDC *pDC=GetDC();
  95. pDC->Ellipse(100,100,200,200);
  96. flag=0;
  97. }
  98. void CEx61View::OnRectangle() 
  99. {
  100. Invalidate();//清除窗口内容
  101. UpdateWindow();
  102. CDC *pDC=GetDC();
  103. pDC->Rectangle(100,100,200,200);
  104. flag=1;
  105. }
  106. void CEx61View::OnUpdateEllipse(CCmdUI* pCmdUI) 
  107. {
  108. pCmdUI->SetCheck(flag==0);
  109. }
  110. void CEx61View::OnUpdateRectangle(CCmdUI* pCmdUI) 
  111. {
  112. pCmdUI->SetCheck(flag==1);
  113. }
  114. void CEx61View::OnEditCopy() 
  115. {
  116. m_bEditPaste=TRUE;
  117. }
  118. void CEx61View::OnEditCut() 
  119. {
  120. m_bEditPaste=TRUE;
  121. }
  122. void CEx61View::OnEditPaste() 
  123. {
  124. AfxMessageBox("There is something to paste!");
  125. m_bEditPaste=FALSE;
  126. }
  127. void CEx61View::OnUpdateEditPaste(CCmdUI* pCmdUI) 
  128. {
  129. pCmdUI->Enable(m_bEditPaste);
  130. }
  131. void CEx61View::OnText() 
  132. {
  133. CDC *pDC=GetDC();
  134. pDC->TextOut(100,100,"Hello!");
  135. }