// sketchView.cpp : implementation of the CSketchView class // generated by AppWizard and modified with the help of ClassWizard // sketching in color selected by user // // Bold statements entered by programmer. // Italicized statements generated by ClassWizard. // #include "stdafx.h" #include "sketch.h" #include "sketchDoc.h" #include "sketchView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSketchView IMPLEMENT_DYNCREATE(CSketchView, CView) BEGIN_MESSAGE_MAP(CSketchView, CView) //{{AFX_MSG_MAP(CSketchView) ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_MOUSEMOVE() ON_COMMAND(IDM_BLUE, OnBlue) ON_COMMAND(IDM_GREEN, OnGreen) ON_COMMAND(IDM_RED, OnRed) ON_COMMAND(IDM_CLEAR, OnClear) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSketchView construction/destruction CSketchView::CSketchView() { // TODO: add construction code here m_pt = m_ptold = CPoint(0,0); m_butdn = FALSE; m_color = RGB(0,0,0); } CSketchView::~CSketchView() { } BOOL CSketchView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CSketchView drawing void CSketchView::OnDraw(CDC* pDC) { CSketchDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here } ///////////////////////////////////////////////////////////////////////////// // CSketchView diagnostics #ifdef _DEBUG void CSketchView::AssertValid() const { CView::AssertValid(); } void CSketchView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CSketchDoc* CSketchView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSketchDoc))); return (CSketchDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CSketchView message handlers void CSketchView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_butdn = TRUE; m_ptold = point; CView::OnLButtonDown(nFlags, point); } void CSketchView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_butdn = FALSE; CView::OnLButtonUp(nFlags, point); } void CSketchView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if (m_butdn) { pDC = GetDC(); m_pt = point; CPen pPen(PS_SOLID,1,m_color); CPen *pPenOld = pDC->SelectObject(&pPen); pDC->MoveTo(m_ptold); pDC->LineTo(m_pt); m_ptold = m_pt; pDC->SelectObject(pPenOld); } CView::OnMouseMove(nFlags, point); } void CSketchView::OnBlue() { // TODO: Add your command handler code here m_color = RGB(0,0,255); } void CSketchView::OnGreen() { // TODO: Add your command handler code here m_color = RGB(0,255,0); } void CSketchView::OnRed() { // TODO: Add your command handler code here m_color = RGB(255,0,0); } void CSketchView::OnClear() { // TODO: Add your command handler code here Invalidate(TRUE); }