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

书籍源码

开发平台:

Visual C++

  1. // GraphicsView.cpp : implementation of the CGraphicsView class
  2. //
  3. #include "stdafx.h"
  4. #include "Graphics.h"
  5. #include "GraphicsDoc.h"
  6. #include "GraphicsView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CGraphicsView
  14. IMPLEMENT_DYNCREATE(CGraphicsView, CView)
  15. BEGIN_MESSAGE_MAP(CGraphicsView, CView)
  16. //{{AFX_MSG_MAP(CGraphicsView)
  17. ON_WM_LBUTTONDOWN()
  18. //}}AFX_MSG_MAP
  19. // Standard printing commands
  20. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  21. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  22. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  23. END_MESSAGE_MAP()
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CGraphicsView construction/destruction
  26. CGraphicsView::CGraphicsView()
  27. {
  28. // TODO: add construction code here
  29. m_bLbuttonDown=FALSE;
  30. }
  31. CGraphicsView::~CGraphicsView()
  32. {
  33. }
  34. BOOL CGraphicsView::PreCreateWindow(CREATESTRUCT& cs)
  35. {
  36. // TODO: Modify the Window class or styles here by modifying
  37. //  the CREATESTRUCT cs
  38. return CView::PreCreateWindow(cs);
  39. }
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CGraphicsView drawing
  42. void CGraphicsView::OnDraw(CDC* pDC)
  43. {
  44. CGraphicsDoc* pDoc = GetDocument();
  45. ASSERT_VALID(pDoc);
  46. // TODO: add draw code for native data here
  47. if(m_bLbuttonDown)
  48. {
  49. CDC *pDC=GetDC();
  50. CRect rect;
  51. GetClientRect(&rect);//获得客户区的位置放在rect中
  52. pDC->Ellipse(&rect); //画一个充满整个客户区的椭圆
  53. pDC->Rectangle(100,100,200,200); //画一矩形
  54. }
  55. }
  56. /////////////////////////////////////////////////////////////////////////////
  57. // CGraphicsView printing
  58. BOOL CGraphicsView::OnPreparePrinting(CPrintInfo* pInfo)
  59. {
  60. // default preparation
  61. return DoPreparePrinting(pInfo);
  62. }
  63. void CGraphicsView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  64. {
  65. // TODO: add extra initialization before printing
  66. }
  67. void CGraphicsView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  68. {
  69. // TODO: add cleanup after printing
  70. }
  71. /////////////////////////////////////////////////////////////////////////////
  72. // CGraphicsView diagnostics
  73. #ifdef _DEBUG
  74. void CGraphicsView::AssertValid() const
  75. {
  76. CView::AssertValid();
  77. }
  78. void CGraphicsView::Dump(CDumpContext& dc) const
  79. {
  80. CView::Dump(dc);
  81. }
  82. CGraphicsDoc* CGraphicsView::GetDocument() // non-debug version is inline
  83. {
  84. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGraphicsDoc)));
  85. return (CGraphicsDoc*)m_pDocument;
  86. }
  87. #endif //_DEBUG
  88. /////////////////////////////////////////////////////////////////////////////
  89. // CGraphicsView message handlers
  90. void CGraphicsView::OnLButtonDown(UINT nFlags, CPoint point) 
  91. {
  92. m_bLbuttonDown=true;
  93. Invalidate();
  94. CView::OnLButtonDown(nFlags, point);
  95. }