C++MFC最简易画板-移动鼠标画线

命名文件为LINE,在LINEView.cpp中打开类向导添加一个CPoint类型的变量mPrevPoint,用于存储按下鼠标左键时上一个位置的点。
C++MFC最简易画板-移动鼠标画线_第1张图片
同样在LINEView.cpp的类向导中,找到WM_LBUTTONDOWN和WM_MOUSEMOVE,点击添加处理程序,完成后点击确认应用。
C++MFC最简易画板-移动鼠标画线_第2张图片
对 CLINEView::OnLButtonDown和CLINEView::OnMouseMove函数进行定义。
C++MFC最简易画板-移动鼠标画线_第3张图片


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);
}

完成后点击运行测试的结果如下。
C++MFC最简易画板-移动鼠标画线_第4张图片

以下是自己无聊写了个建议的画笔
可以实现增减线宽和改变画笔的颜色
百度网盘链接
提取码: 7aqc

你可能感兴趣的:(mfc,c++)