// 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);
}