我的颜色和连续线重绘不了
void CPaintView::OnDraw(CDC* pDC)
{
CPaintDoc* pDoc = GetDocument(); 这里是重绘
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
pDC->SelectObject(pBrush);
for(int i=0;i<m_ptrArray.GetSize();i++)
{
switch(((CDraw*)m_ptrArray.GetAt(i))->m_nDrawType)
{
case 1:
pDC->MoveTo(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin);
pDC->LineTo(((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd);
break;
case 2:
pDC->Rectangle(CRect(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd));
break;
case 3:
pDC->Ellipse(CRect(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd));
break;
case 4:
pDC->RoundRect(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin.x,((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin.y,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd.x,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd.y,30,50);
break;
case 5:
m_bDraw=false;
break;
}
}
} /////////////////////////////////////////////////////////////////////////////
// CPaintView printing BOOL CPaintView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
} void CPaintView::OnBeginPrintin***C* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
} void CPaintView::OnEndPrintin***C* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
} /////////////////////////////////////////////////////////////////////////////
// CPaintView diagnostics #ifdef _DEBUG
void CPaintView::AssertValid() const
{
CView::AssertValid();
} void CPaintView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
} CPaintDoc* CPaintView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPaintDoc)));
return (CPaintDoc*)m_pDocument;
}
#endif //_DEBUG /////////////////////////////////////////////////////////////////////////////
// CPaintView message handlers void CPaintView::OnLine()
{
// TODO: Add your command handler code here
m_nDrawType=1;
} void CPaintView::OnRectangle()
{
// TODO: Add your command handler code here
m_nDrawType=2;
} void CPaintView::OnEllipse()
{
// TODO: Add your command handler code here
m_nDrawType=3;
} void CPaintView::OnYuanjiaojuzhen()
{
// TODO: Add your command handler code here
m_nDrawType=4;
} void CPaintView::OnPaint()
{
// TODO: Add your command handler code here
m_nDrawType=5;
} void CPaintView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
void CPaintView::OnDraw(CDC* pDC)
{
CPaintDoc* pDoc = GetDocument(); 这里是重绘
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
pDC->SelectObject(pBrush);
for(int i=0;i<m_ptrArray.GetSize();i++)
{
switch(((CDraw*)m_ptrArray.GetAt(i))->m_nDrawType)
{
case 1:
pDC->MoveTo(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin);
pDC->LineTo(((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd);
break;
case 2:
pDC->Rectangle(CRect(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd));
break;
case 3:
pDC->Ellipse(CRect(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd));
break;
case 4:
pDC->RoundRect(((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin.x,((CDraw*)m_ptrArray.GetAt(i))->m_ptOrigin.y,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd.x,((CDraw*)m_ptrArray.GetAt(i))->m_ptEnd.y,30,50);
break;
case 5:
m_bDraw=false;
break;
}
}
} /////////////////////////////////////////////////////////////////////////////
// CPaintView printing BOOL CPaintView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
} void CPaintView::OnBeginPrintin***C* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
} void CPaintView::OnEndPrintin***C* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
} /////////////////////////////////////////////////////////////////////////////
// CPaintView diagnostics #ifdef _DEBUG
void CPaintView::AssertValid() const
{
CView::AssertValid();
} void CPaintView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
} CPaintDoc* CPaintView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPaintDoc)));
return (CPaintDoc*)m_pDocument;
}
#endif //_DEBUG /////////////////////////////////////////////////////////////////////////////
// CPaintView message handlers void CPaintView::OnLine()
{
// TODO: Add your command handler code here
m_nDrawType=1;
} void CPaintView::OnRectangle()
{
// TODO: Add your command handler code here
m_nDrawType=2;
} void CPaintView::OnEllipse()
{
// TODO: Add your command handler code here
m_nDrawType=3;
} void CPaintView::OnYuanjiaojuzhen()
{
// TODO: Add your command handler code here
m_nDrawType=4;
} void CPaintView::OnPaint()
{
// TODO: Add your command handler code here
m_nDrawType=5;
} void CPaintView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default