void CHHHView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
if(m_bDraw==true)
{
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
if(m_ptOrigin.x!=point.x||m_ptOrigin.y!=point.y)//坐标重复不累计
iy++;
m_ptOrigin=point;
}
CView::OnMouseMove(nFlags, point);
}
但是这样还是有问题,周长的大小iy和鼠标移动的快慢有关系,大侠能帮我解决吗
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
if(m_bDraw==true)
{
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
if(m_ptOrigin.x!=point.x||m_ptOrigin.y!=point.y)//坐标重复不累计
iy++;
m_ptOrigin=point;
}
CView::OnMouseMove(nFlags, point);
}
但是这样还是有问题,周长的大小iy和鼠标移动的快慢有关系,大侠能帮我解决吗
这个是你鼠标只要一动就会触发的,你再看下你的函数,计算的是一小段一小段的长度,就是两个检测鼠标移动间隔之间鼠标移动的距离,鼠标移动快的时候,检测时间之内就能移动距离更多,鼠标移动慢的话,那一小段距离就小.
iy = sqrt((m_ptOrigin.x-point.x)*(m_ptOrigin.x-point.x)+(m_ptOrigin.y-point.y)*(m_ptOrigin.y-point.y))
响应OnLButtonUp()函数(保存当前点)画出图形。这样通过起始点和当前点再加上公式就可以计算周长了
iy = sqrt((m_ptOrigin.x-point.x)*(m_ptOrigin.x-point.x)+(m_ptOrigin.y-point.y)*(m_ptOrigin.y-point.y))