LBUTTONDOWN 开始画矩形
MOUSEMOVE
RBUTTOMDOWN 结束画矩形在MOUSEMOVE里处理好就可以了啊
//LBUTTONDOWN
else if(m_rectangle)
{
if(m_step==0) {m_start=point;m_step++;}
else if(m_step==1)
{
pDoc->AddRectangle(m_start,m_end);
m_step=0;m_rectangle=m_start.x=m_start.y=m_end.x=m_end.y=0;
}
}//MOUSEMOVE
dc.SetROP2(R2_NOTXORPEN);
CView::OnMouseMove(nFlags, point);
CCadDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
/*if(m_line)
{
if(m_step==1)
{ if(m_end.x==0)
{
dc.MoveTo(m_start);
dc.LineTo(point);
}
else
{
dc.MoveTo(m_start);dc.LineTo(m_end);
dc.MoveTo(m_start);dc.LineTo(point);
}
} }*/
//else
if(m_rectangle)
{
if(m_step==1)
{
if(m_end.x==0) dc.Rectangle(m_start.x,m_start.y,point.x,point.y);
else {dc.Rectangle(m_start.x,m_start.y,m_end.x,m_end.y);dc.Rectangle(m_start.x,m_start.y,point.x,point.y);}
}
}
MOUSEMOVE
RBUTTOMDOWN 结束画矩形在MOUSEMOVE里处理好就可以了啊
//LBUTTONDOWN
else if(m_rectangle)
{
if(m_step==0) {m_start=point;m_step++;}
else if(m_step==1)
{
pDoc->AddRectangle(m_start,m_end);
m_step=0;m_rectangle=m_start.x=m_start.y=m_end.x=m_end.y=0;
}
}//MOUSEMOVE
dc.SetROP2(R2_NOTXORPEN);
CView::OnMouseMove(nFlags, point);
CCadDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
/*if(m_line)
{
if(m_step==1)
{ if(m_end.x==0)
{
dc.MoveTo(m_start);
dc.LineTo(point);
}
else
{
dc.MoveTo(m_start);dc.LineTo(m_end);
dc.MoveTo(m_start);dc.LineTo(point);
}
} }*/
//else
if(m_rectangle)
{
if(m_step==1)
{
if(m_end.x==0) dc.Rectangle(m_start.x,m_start.y,point.x,point.y);
else {dc.Rectangle(m_start.x,m_start.y,m_end.x,m_end.y);dc.Rectangle(m_start.x,m_start.y,point.x,point.y);}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货