详细地记录了一下在VS2010中创建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】,然后执行绘图函数。