请教一个MFC函数里鼠标画线的问题

void C3Dlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

if (nFlags == MK_LBUTTON)
{
    dc->MoveTo(pt);
    dc->LineTo(point.x , point.y );

}
pt = point;
CDialogEx::OnMouseMove(nFlags, point);

}
请问下这个程序如果把 PT=POINT,放在前面会出现,画快了成虚线了的情况
请问下是什么原理呀?

3个回答

划线那段是从上次的点的位置滑道这次点的位置,既从pt画到point,你把pt在前面赋值了岂不是上次点的位置和这次点的位置一样了。

pt = point;这个用来为下次划线保存一个划线的起点,当然是先划线,再设置,否则它被 point 覆盖了。

MoveTo 只需在LBUTTONDOWN 调用就可以了 之后全是LineTo就行了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问