www.pudn.com > TOOLBarSample.rar > TOOLBarSampleView.cpp
// TOOLBarSampleView.cpp : implementation of the CTOOLBarSampleView class
//
#include "stdafx.h"
#include "TOOLBarSample.h"
//#include "TOOLBarSampleView.h"
#include "TOOLBarSampleDoc.h"
#include "TOOLBarSampleView.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTOOLBarSampleView
IMPLEMENT_DYNCREATE(CTOOLBarSampleView, CView)
BEGIN_MESSAGE_MAP(CTOOLBarSampleView, CView)
//{{AFX_MSG_MAP(CTOOLBarSampleView)
ON_COMMAND(ID_ELLIPSE, OnEllipse)
ON_UPDATE_COMMAND_UI(ID_ELLIPSE, OnUpdateEllipse)
ON_COMMAND(ID_RECT, OnRect)
ON_UPDATE_COMMAND_UI(ID_RECT, OnUpdateRect)
ON_WM_LBUTTONDOWN()
ON_CBN_SELCHANGE(IDC_FILLORNO, OnSelChangeCombo)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTOOLBarSampleView construction/destruction
CTOOLBarSampleView::CTOOLBarSampleView()
{
// TODO: add construction code here
int m_y = 0;
int m_x = 0 ;
int m_shape = 0 ;
m_fill = TRUE ;
}
CTOOLBarSampleView::~CTOOLBarSampleView()
{
}
BOOL CTOOLBarSampleView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CTOOLBarSampleView drawing
void CTOOLBarSampleView::OnDraw(CDC* pDC)
{
CTOOLBarSampleDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
RECT rect ;
rect.left = m_x-50 ;
rect.right= m_x+50 ;
rect.top = m_y-30 ;
rect.bottom = m_y+30 ;
CBrush blue ;
blue.CreateSolidBrush(RGB(0,0,255)) ;
CBrush *PoldBrush ;
if (m_fill == TRUE)
{
PoldBrush= pDC->SelectObject(&blue) ;
if (m_shape == 0)
pDC->Ellipse(&rect) ;
else
pDC->FillRect(&rect,&blue) ;
}
else
{
PoldBrush = (CBrush*)pDC->SelectStockObject(NULL_BRUSH) ;
if (m_shape == 0)
pDC->Ellipse(&rect) ;
else
pDC->Rectangle(&rect) ;
}
pDC->SelectObject(PoldBrush) ;
}
/////////////////////////////////////////////////////////////////////////////
// CTOOLBarSampleView printing
BOOL CTOOLBarSampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CTOOLBarSampleView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CTOOLBarSampleView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CTOOLBarSampleView diagnostics
#ifdef _DEBUG
void CTOOLBarSampleView::AssertValid() const
{
CView::AssertValid();
}
void CTOOLBarSampleView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CTOOLBarSampleDoc* CTOOLBarSampleView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTOOLBarSampleDoc)));
return (CTOOLBarSampleDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTOOLBarSampleView message handlers
void CTOOLBarSampleView::OnEllipse()
{
// TODO: Add your command handler code here
m_shape = 0 ;
}
void CTOOLBarSampleView::OnUpdateEllipse(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_shape == 0)
pCmdUI->SetCheck(1) ;
else
pCmdUI->SetCheck(0) ;
}
void CTOOLBarSampleView::OnRect()
{
// TODO: Add your command handler code here
m_shape = 1 ;
}
void CTOOLBarSampleView::OnUpdateRect(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_shape == 1)
pCmdUI->SetCheck(1) ;
else
pCmdUI->SetCheck(0) ;
}
void CTOOLBarSampleView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_x = point.x ;
m_y = point.y ;
Invalidate() ;
CView::OnLButtonDown(nFlags, point);
}
void CTOOLBarSampleView::OnSelChangeCombo()
{
CString m_curstr ;
CMainFrame* pMFrame = (CMainFrame*)AfxGetMainWnd() ;
pMFrame->m_fillorno.GetLBText(pMFrame->m_fillorno.GetCurSel(),m_curstr) ;
if (m_curstr == "Ìî³ä")
m_fill =true ;
else
m_fill = false ;
}