计算几何01_项目搭建与鼠标绘制直线

新年新目标,从今天开始学习计算几何相关算法与实现,本工程主要使用VS2017、Win10完成。
在这里插入图片描述

一、项目搭建

1.1 新建MFC项目

首先创建新项目,选择MFC应用。
在这里插入图片描述
点击确定,
在这里插入图片描述
点击完成。
在这里插入图片描述
新建出来的解决方案如上图(可自行mfc教程了解每个类的继承关系及作用)。

1.2 绘制测试

新建完项目后,我们来使用尝试使用MFC中的GDI对象来进行相关绘制测试。

首先,我们需要在OnDraw函数(相当于MFC的main函数入口)中添加以下代码:

// CGeometricfiguretestView 绘图

void CGeometricfiguretestView::OnDraw(CDC* pDC)
{
	CGeometricfiguretestDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

	// TODO: 在此处为本机数据添加绘制代码
	// 绘制直线
	pDC->MoveTo(100, 200);
	pDC->LineTo(500, 400);
	//绘制文字
	pDC->TextOutW(100, 100,TEXT("geometry_learn"));
}

编译运行:
在这里插入图片描述

二、鼠标绘制直线

上述完成后,我们来完成一各小案例:使用鼠标左键按下与弹起绘制直线。

首先,我们需要在头文件CGeometricfiguretestView.h中添加两个点来记录鼠标位置。

protected:
	CPoint p0, p1;

之后,我们使用类向导功能,添加鼠标左键按下消息。
在这里插入图片描述
选择相应类及消息,点击添加处理程序。
在这里插入图片描述
完成上述操作后,我们可以在cpp中找到对应添加的函数。
在鼠标按下OnLButtonDown中添加记录点击时的起点,在鼠标弹起OnLButtonUp中进行绘制操作。

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


void CGeometricfiguretestView::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	p1 = point;
	CDC* pdc = GetDC();
	
	pdc->MoveTo(p0);
	pdc->LineTo(p1);


	ReleaseDC(pdc);
	CView::OnLButtonUp(nFlags, point);
}

tip:不要忘记释放指针

编译运行,可见如下效果。
在这里插入图片描述

© 版权声明
THE END
喜欢就支持一下吧
点赞989 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容