Visual C++ MFC GUI对象入门:字体、刷子、画笔与位图

5星 · 超过95%的资源 需积分: 9 1 下载量 121 浏览量 更新于2024-09-12 收藏 110KB DOC 举报
本篇Visual C++ MFC入门教程的第二部分主要介绍了Windows图形用户界面(GUI)编程中的关键对象及其属性。MFC(Microsoft Foundation Classes)是Microsoft Visual Studio中用于开发Windows应用程序的标准工具集,其核心在于C++类库,支持创建复杂的桌面应用。 首先,我们关注的是CFont对象,它是用于设置文本输出的字体样式,如斜体、粗体、特定字体名和下划线。虽然颜色和背景色不是字体属性,但它们在文本显示中也起着重要作用,将在后续章节2.2“在窗口中输出文字”中详细介绍字体的创建和使用。 其次,CBrush对象负责控制图形区域的填充,属性包括颜色以及是否采用网格模式(如水平、垂直或交叉)。此外,自定义刷子允许使用8x8位图模板,会在2.3“使用刷子,笔进行绘图”章节深入探讨。 CPen对象在绘制线条和点时非常有用,其属性有颜色、宽度和线型(实线、虚线或点划线)。这部分内容同样在2.3中详细阐述。 CBitmap对象存储图像数据,分为设备相关位图、图标和设备无关位图,会在2.4“在窗口中绘制设备相关位图,图标,设备无关位图”中介绍如何操作和应用这些位图。 多边形作为特殊的GUI对象,能用于限定绘图区域或改变窗口形状,将在2.6“多边形和剪贴区域”中具体讨论其创建和使用方法。 在Windows GUI编程中,正确使用这些对象至关重要。开发者需要创建合法的对象,并将其添加到Device Context (DC)中,同时保持原始对象的备份,以避免异常。使用完毕后,务必恢复原始对象,防止内存泄漏。为了确保代码的健壮性,每次重新使用对象前必须先销毁旧的对象,如以下示例所示: ```cpp void OnDraw(CDC* pDC) { CPen pen1, pen2; // 创建对象 pen1.CreatePen(PS_SOLID, 2, RGB(128, 128, 128)); pen2.CreatePen(PS_SOLID, 2, RGB(128, 128, 0)); CPen* pPenOld = pDC->SelectObject(&pen1); // 选择对象并保存旧对象 // 在这里进行绘图操作... drawWithPen(pDC, pen2); // 使用第二个笔对象 pDC->SelectObject(pPenOld); // 恢复原始笔对象 delete &pen1; delete &pen2; // 销毁临时对象 } ``` 通过这些对象和属性的学习,初学者能够掌握MFC中图形操作的基础,为后续更复杂的图形用户界面设计打下坚实的基础。