点击跳转到视频教程

Gitee链接

文件为:DrawLineView.hDrawLineView.cpp
以下是步骤
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

void CDrawLineView::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	pStart = point;
	CView::OnLButtonDown(nFlags, point);
}


void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	pEnd = point;
	CDC* pDC = GetDC();
	pDC->MoveTo(pStart);
	pDC->LineTo(pEnd);
	ReleaseDC(pDC);
	CView::OnLButtonUp(nFlags, point);
}

运行程序,使用鼠标左键点击滑动即可画线
在这里插入图片描述
画矩形
OnLButtonDown 函数不变

void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point)
{
	// 画矩形
	pEnd = point;
	CDC* pDC = GetDC();
	CPen newPen;
	// PS_SOLID代表实线, 3代表线的宽度, RGB是线的颜色
	newPen.CreatePen(PS_SOLID, 3, RGB(255, 0, 0));
	pDC->SelectObject(newPen);
	// pStart为矩形的左上角的点,pEnd为矩形的右下角的点
	pDC->Rectangle(CRect(pStart, pEnd));
	ReleaseDC(pDC);
	CView::OnLButtonUp(nFlags, point);
}

在这里插入图片描述

画椭圆
OnLButtonDown 函数不变

void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point)
{
	// 画椭圆
	pEnd = point;
	CDC* pDC = GetDC();
	CPen newPen;
	// PS_SOLID代表实线, 3代表线的宽度, RGB是线的颜色
	newPen.CreatePen(PS_SOLID, 3, RGB(255, 0, 0));
	pDC->SelectObject(newPen);
	pDC->Ellipse(CRect(pStart, pEnd));
	ReleaseDC(pDC);
	CView::OnLButtonUp(nFlags, point);
}

在这里插入图片描述

	// 填充椭圆
	pEnd = point;
	CDC* pDC = GetDC();
	CPen newPen;
	// PS_SOLID代表实线, 3代表线的宽度, RGB是线的颜色
	newPen.CreatePen(PS_SOLID, 3, RGB( 0, 255, 0));
	pDC->SelectObject(newPen);

	CBrush newBrush;
	newBrush.CreateSolidBrush(RGB(255, 0, 0));
	pDC->SelectObject(&newBrush);
	pDC->Ellipse(CRect(pStart, pEnd));
	newPen.DeleteObject();
	newBrush.DeleteObject();
	ReleaseDC(pDC);
	CView::OnLButtonUp(nFlags, point);

在这里插入图片描述


版权声明:本文为Redmoon955331原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Redmoon955331/article/details/123259138