关于图形最大化....崩溃中
用单文档程序做一个徒手画,将窗口最大化,图画内容消失。
我用vector来记录点和线不好用,大家有没有好用的代码啊,给发上来看看贝?
后面带//的是自己加的。
class CPaintView : public CView
{
。。。。。
public:
vector<CPoint> vPoint;//
vector< vector<CPoint> > vLine;//
。。。。。
};
void CPaintView::OnDraw(CDC* pDC)
{
CPaintDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPoint start,end;//
vector<vector<CPoint> >::iterator itLine;//
vector<CPoint>::iterator itPoint;//
for(itLine=vLine.begin();itLine<vLine.end();++itLine)//
{
itPoint=(*itLine).begin();//
start.x=(*itPoint).x;//
start.y=(*itPoint).y;//
for(int i=0;i<((*itLine).size()-1);i++)//
{
++itPoint;//
end.x=(*itPoint).x;//
end.y=(*itPoint).y;//
pDC->MoveTo(start);//
pDC->LineTo(end);//
start.x=end.x;//
start.y=end.y;//
}
}
}
void CPaintView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(m_bDrawing)
{
endPoint.x=point.x;
endPoint.y=point.y;
vPoint.push_back(point);//
CClientDC dc(this);
if(startPoint.x!=100)
{
dc.MoveTo(startPoint);
dc.LineTo(endPoint);
startPoint.x=endPoint.x;
startPoint.y=endPoint.y;
}
}
vLine.push_back(vPoint);//
CView::OnMouseMove(nFlags, point);
}
void CPaintView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
vLine.clear();//
//vPoint.clear();
CClientDC dc(this);
CRect rect;
this->GetClientRect(rect);
dc.FillRect(rect,new CBrush(RGB(255,255,255)));
CView::OnRButtonDown(nFlags, point);
}