void CMy11View::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(dragging)
{
switch(shape)
{
case 1:
{
CClientDC dc(this);
dc.SetROP2(R2_NOTXORPEN);
dc.MoveTo(opoint);
dc.LineTo(opoint1);
dc.MoveTo(opoint);
dc.LineTo(point);
opoint1=opoint;
break;
}
case 2:
{
CClientDC dc(this);
dc.SetROP2(R2_NOTXORPEN);
dc.Rectangle(opoint.x,opoint1.y,opoint1.x,opoint.y);
dc.Rectangle(opoint.x,point.y,point.x,opoint.y);
opoint1=point;
break;
}
case 3:
{
CClientDC dc(this);
dc.SetROP2(R2_NOTXORPEN);
dc.Ellipse(opoint.x,opoint1.y,opoint1.x,opoint.y);
dc.Ellipse(opoint.x,point.y,point.x,opoint.y);
opoint1=point;
break;
}
}
}
CView::OnMouseMove(nFlags, point);
}
看你绘制什么图形,如果是圆,那么圆心选择 客户区宽度/2,客户区高度/2
如果是矩形,那么左上角选择 (客户区宽度-矩形宽度)/2,(客户区高度-矩形高度)/2