// sketchView.cpp : implementation of the CSketchView class
// generated by AppWizard and modified with the help of ClassWizard
// color sketching with a text display modal dialog box
//
// Bold-faced statements were entered by the programmer.
// Italicized statements were generated by ClassWizard.
// Italicized, bold statements are new to this version of the program.
//
//
#include "stdafx.h"
#include "sketch.h"
#include "sketchDoc.h"
#include "sketchView.h"
#include "TextDlg.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)
ON_COMMAND(IDM_TEXT, OnText)
//}}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;
nColor = 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,nColor);
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
nColor = RGB(0,0,255);
}
void CSketchView::OnGreen()
{
// TODO: Add your command handler code here
nColor = RGB(0,255,0);
}
void CSketchView::OnRed()
{
// TODO: Add your command handler code here
nColor = RGB(255,0,0);
}
void CSketchView::OnClear()
{
// TODO: Add your command handler code here
Invalidate(TRUE);
}
void CSketchView::OnText()
{
// TODO: Add your command handler code here
CTextDlg dlg;
dlg.DoModal();
pDC = GetDC();
pDC->SetTextColor(nColor);
pDC->TextOut(dlg.m_x,dlg.m_y,dlg.m_text,strlen(dlg.m_text));
}