MFC图形编程:用C++绘制并填充多边形

需积分: 30 5 下载量 188 浏览量 更新于2024-08-14 收藏 2.78MB PPT 举报
"MFC绘图教程-使用C++在MFC中填充多边形" 在MFC (Microsoft Foundation Class) 库中,我们可以利用它的图形功能来创建丰富的用户界面,包括绘制各种形状和图案。本章节主要介绍了如何在C++环境中使用MFC进行基本的绘图操作,特别是如何绘制一个由指定点构成的多边形并用画刷填充。 首先,我们来看一下如何定义一个多边形。在提供的代码段中,定义了一个点数组`p`来存储多边形的顶点坐标: ```cpp p[0]=CPoint(740,240);p[1]=CPoint(660,160); p[2]=CPoint(620,260);p[3]=CPoint(660,370); p[4]=CPoint(720,300);p[5]=CPoint(760,380); p[6]=CPoint(840,220); ``` 这些点按照顺序连接起来形成了一个多边形。`CPoint`是MFC中用于表示二维坐标的一个类,这里用来指定每个顶点的位置。 接下来,创建了一个画刷对象`MyBrush`,用于填充多边形内部: ```cpp MyBrush.CreateSolidBrush(RGB(255,0,0)); ``` 这里`CreateSolidBrush`函数创建了一个实心画刷,颜色为红色(RGB(255,0,0))。`RGB`函数用于指定颜色的红、绿、蓝三个分量,每个分量的值范围是0到255。 然后,选取这个画刷作为当前设备上下文(`pDC`)的画刷: ```cpp OldBrush=pDC->SelectObject(&MyBrush); ``` 这里的`pDC`通常是指指向`CDC`(Class Device Context)对象的指针,它是MFC中处理设备上下文的类,包含了设备相关的绘图信息。`SelectObject`方法用来选取画刷,原来的画刷会被保存在`OldBrush`中。 接着,使用`Polygon`函数绘制多边形并填充: ```cpp pDC->Polygon(p,7); ``` `Polygon`函数接受两个参数,第一个参数是点数组的指针,第二个参数是点的数量,也就是多边形的边数。在这个例子中,我们传入了7个点,所以绘制的是一个7边形。 最后,恢复原来的画刷,并删除创建的画刷对象: ```cpp pDC->SelectObject(OldBrush); MyBrush.DeleteObject(); ``` 这样,我们就完成了在MFC中使用画刷填充多边形的整个过程。这个过程展示了MFC中基本的图形绘制操作,以及如何结合使用`CDC`、`CBrush`等MFC类来实现图形界面的定制。 在MFC上机操作时,通常会使用Visual C++ 6.0或其他版本的Visual Studio,通过MFC AppWizard创建项目,然后在相应的视图类中实现绘图逻辑。在代码编辑器中编写绘图代码,然后编译运行,就可以在窗口中看到绘制的图形。 学习MFC绘图,不仅需要掌握基本的C++语法,还要理解MFC框架中的类结构和绘图函数的使用。通过实践,你可以创建出具有复杂图形界面的应用程序。在后续章节中,可能会涵盖更多高级的绘图技术,如渐变填充、位图操作等。同时,习题部分将帮助巩固这些知识,加深理解和应用。