命名文件为LINE,在LINEView.cpp中打开类向导添加一个CPoint类型的变量mPrevPoint,用于存储按下鼠标左键时上一个位置的点。

同样在LINEView.cpp的类向导中,找到WM_LBUTTONDOWN和WM_MOUSEMOVE,点击添加处理程序,完成后点击确认应用。

对 CLINEView::OnLButtonDown和CLINEView::OnMouseMove函数进行定义。

void CLINEView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
mPrevPoint = point;
CView::OnLButtonDown(nFlags, point);
}
void CLINEView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if ((nFlags & MK_LBUTTON) != 0)
{
auto PDC = GetDC();
PDC->MoveTo(mPrevPoint);
PDC->LineTo(point);
mPrevPoint = point;
}
InvalidateRect(nullptr, false);
CView::OnMouseMove(nFlags, point);
}
完成后点击运行测试的结果如下。

以下是自己无聊写了个建议的画笔
可以实现增减线宽和改变画笔的颜色
百度网盘链接
提取码: 7aqc
本文介绍如何在MFC应用程序中使用鼠标绘制线条。通过在LINEView.cpp中添加CPoint类型变量mPrevPoint存储鼠标左键按下时的位置,并在WM_LBUTTONDOWN和WM_MOUSEMOVE消息中添加处理程序,实现鼠标移动时绘制线条的功能。此外,还提供了一个额外的画笔功能,包括调整线宽和颜色。
220





