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

版权声明:未经允许不得以任何形式转载,谢谢! https://blog.csdn.net/XTAOTWO/article/details/83421023

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

一、创建MFC工程

 

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

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

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

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

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

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

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

绘制点的代码:

CClientDC  dc(this);

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

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

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

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

//构造一个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() 函数传入的参数是直线中点的坐标  

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

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

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

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

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

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

 

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

 

猜你喜欢

转载自blog.csdn.net/XTAOTWO/article/details/83421023