vs2010、MFC窗口中绘制点、线、面

详细地记录了一下在VS2010中创建MFC工程的过程,以及绘制点、线、面功能的实现。因为是教学所用,所以过程记录的比较繁琐。主要包含了如何创建在MFC中创建MFC工程、绘制固定坐标的图形、通过鼠标绘制线段。

一、创建MFC工程

vs2010、MFC窗口中绘制点、线、面_第1张图片

vs2010、MFC窗口中绘制点、线、面_第2张图片

vs2010、MFC窗口中绘制点、线、面_第3张图片

vs2010、MFC窗口中绘制点、线、面_第4张图片

vs2010、MFC窗口中绘制点、线、面_第5张图片

vs2010、MFC窗口中绘制点、线、面_第6张图片

vs2010、MFC窗口中绘制点、线、面_第7张图片

vs2010、MFC窗口中绘制点、线、面_第8张图片

 vs2010、MFC窗口中绘制点、线、面_第9张图片

vs2010、MFC窗口中绘制点、线、面_第10张图片

vs2010、MFC窗口中绘制点、线、面_第11张图片

vs2010、MFC窗口中绘制点、线、面_第12张图片

这里就是我们刚刚建好的MFC工程了,启动调试后可以看到默认的界面。 

vs2010、MFC窗口中绘制点、线、面_第13张图片

二、MFC中绘制点、线、面功能的实现

在资源视图中打开【Menu】菜单下的【IDR_MAINFRAME】,可以看到MFC界面,我们可以在上面编辑菜单。

vs2010、MFC窗口中绘制点、线、面_第14张图片

vs2010、MFC窗口中绘制点、线、面_第15张图片

编辑菜单栏,添加一个绘图选项,并在下面添加四子菜单,绘点,绘线,绘矩形,绘椭圆

vs2010、MFC窗口中绘制点、线、面_第16张图片

在子菜单下右键单击绘点,选择【添加事件处理程序】

vs2010、MFC窗口中绘制点、线、面_第17张图片

消息类型选择【COMMAND】,类列表选择【CMFC_DrawView】

vs2010、MFC窗口中绘制点、线、面_第18张图片

点击【添加编辑】按钮后,会自动在【MFC_DrawView.cpp】下添加一个响应函数,把我们需要进行的操作写在这个里面。

vs2010、MFC窗口中绘制点、线、面_第19张图片

绘制点的代码:

CClientDC  dc(this);

dc.setPixel(50, 50, RGB(255 , 0 , 0));

三个参数分别为点的X坐标,Y坐标,和点的颜色。

注意,这里是屏幕坐标,以视图的左上角为原点(0,0),向右为X轴正方向,向下为Y轴正方向。

vs2010、MFC窗口中绘制点、线、面_第20张图片

vs2010、MFC窗口中绘制点、线、面_第21张图片

按照相同的步骤添加绘直线的响应事件,在【函数处理程序名称】中,可以更改函数名

vs2010、MFC窗口中绘制点、线、面_第22张图片

//构造一个DC,传入当前对象.表示在当前对象使用.

CClientDC dc(this);

//创建一个画笔.(线的类型, 宽度, 颜色);

CPen pen(PS_SOLID, 1, RGB(255, 0, 255));

//把画笔选到设置描述表当中.覆盖默认画笔.

dc.SelectObject(&pen);

//画直线.

dc.MoveTo(100,50);        

dc.LineTo(200,200);

//MoveTo() 函数传入的是直线起点的坐标

//LineTo() 函数传入的参数是直线中点的坐标  

vs2010、MFC窗口中绘制点、线、面_第23张图片

vs2010、MFC窗口中绘制点、线、面_第24张图片

添加绘制矩形的响应事件,绘制矩形函数传入的四个参数矩形的左上右和右下角的点的坐标值。

vs2010、MFC窗口中绘制点、线、面_第25张图片

vs2010、MFC窗口中绘制点、线、面_第26张图片

加绘制椭圆的响应事件,传入的参数是和矩形一样,绘制的是矩形的内接椭圆,如果是正方形,则绘制的是圆。

vs2010、MFC窗口中绘制点、线、面_第27张图片

vs2010、MFC窗口中绘制点、线、面_第28张图片

三、通过鼠标移动绘制直线

在【类视图】中找到【CMFC_DrawView】,右键打开属性。

vs2010、MFC窗口中绘制点、线、面_第29张图片

找到【WM_LBUTTONDOWN,】,重载【OnLButtonDown】和【OnLButtonUp】函数,这两个函数分别响应鼠标在视图中的【按下】和【弹起】事件。

vs2010、MFC窗口中绘制点、线、面_第30张图片vs2010、MFC窗口中绘制点、线、面_第31张图片

在【解决方案管理器】打开【MFC_DrawView.h】头文件,在【public】下添加两个【CPoint】

vs2010、MFC窗口中绘制点、线、面_第32张图片

 

在【MFC_DrawView.cpp】中分别为【OnLButtonDown】和【OnLButtonUp】函数,添加如下代码,鼠标第一按下时,获取当前鼠标的位置,赋值给【spoint】,鼠标弹起时,将鼠标的位置赋值为【epoint】,然后执行绘图函数。

vs2010、MFC窗口中绘制点、线、面_第33张图片

vs2010、MFC窗口中绘制点、线、面_第34张图片

 

你可能感兴趣的:(C++,MFC)