《图形与文本》PPT课件.ppt
《《图形与文本》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图形与文本》PPT课件.ppt(67页珍藏版)》请在三一办公上搜索。
1、第 3 章 图形和文本输出,Visual C+程序设计与应用教程,3.1 图形设备接口和设备环境 3.2 GDI对象CGdiObject 3.3 画笔和画刷的使用 3.4 处理文本 3.5 位图3.6 应用实例,2,3.1 图形设备接口和设备环境,3.1.1 图形设备接口 Windows提供了一个称为图形设备接口(Graphics Device Interface,GDI)的抽象接口。GDI负责管理用户绘图操作时功能的转换,实现设备无关性。,3,应用程序可以使用GDI创建3种类型的图形输出:矢量图形、光栅图形和文本。1.矢量图形 矢量图形输出是指画线和填充图形,包括点、直线、曲线、多边形、扇形
2、和矩形等。2.光栅图形 光栅图形输出是指光栅图形函数对以位图形式存储的数据进行操作,它包括各种位图和图标的输出。3.文本 与DOS字符方式下输出文本不同,Windows中的文本是按图形方式输出的。,4,3.1.2 设备环境 Windows应用程序的输出不直接面向显示器或打印机等物理设备,而是面向一个称之为设备环境(Device Context,DC)的虚拟逻辑设备。设备环境DC,也称设备描述表或设备上下文。它是由GDI创建、用来代表设备连接的数据结构。DC的主要功能有以下几种:,5,(1)允许应用程序使用一个输出设备。(2)提供Windows应用程序、设备驱动和输出设备之间的连接。(3)保存当
3、前信息,例如当前的画笔、画刷、字体和位图等图形对象及其属性,以及颜色和背景等影响图形输出的绘图模式。(4)保存窗口剪切区域,限制程序输出到输出设备中窗口覆盖的区域。,6,3.1.3 设备环境类 1.设备环境类CDC及其功能,所有设备环境类的基类,对GDI的所有绘图函数进行了封装,用于响应窗口重绘消息的绘图输出,不仅可对客户区进行操作,还可以对非客户区进行操作,代表窗口客户区的设备环境,代表整个窗口的设备环境,包括客户区和非客户区,代表Windows图元文件设备环境,7,2.设备环境类CDC的一些常用函数,8,9,3.1.4 颜色的设置 Windows用COLORREF类型的数据存放颜色,它是一
4、个32位整数。任何一种颜色都是由红、绿、蓝3种基本颜色组成的,COLORREF类型数据的低位字节存放红色强度值,第2个字节存放绿色强度值,第3个字节存放蓝色强度值,高位字节为0,每一种颜色分量的取值范围为0255。,10,MFC提供了RGB宏,用于设置颜色,其使用形式为:RGB(byRed,byGreen,byBlue)其中参数byRed、byGreen和byBlue分别表示红、绿、蓝分量值(范围0255)。下表列出了一些常用颜色的RGB值。,11,12,1.传统的SDK获取设备环境的方法 采用SDK方法编程,获取设备环境的方法有两种:(1)在WM_PAINT消息处理函数中通过调用API函数B
5、eginPaint()获取设备环境,在消息处理函数返回前调用API函数EndPaint()释放设备环境。(2)如果绘图操作不是在WM_PAINT消息处理函数中,需要通过调用API函数GetDC()获取设备环境,调用API函数ReleaseDC()释放设备环境。,3.1.5 获取设备环境,13,2.MFC应用程序获取设备环境的方法 在一个MFC应用程序中获得DC的方法主要有两种:(1)接受一个参数为指向CDC对象的指针;(2)声明一个 MFC设备环境类的对象,并使用this指针为该对象赋值。,14,3.1.6 编程实例【例3.1】编写一个单文档的MFC应用程序Li3_1,利用表3-2中的函数绘制
6、几种常见的几何图形。当程序运行时,显示如图所示结果。,15,【例3.2】编写一个单文档的MFC应用程序Li3_2,使用CPaintDC类完成例3.1同样的功能。,16,【例3.3】编写一个基于对话框的MFC应用程序Li3_3,程序运行后,当用户在窗口中单击鼠标左键时,在窗口中绘制一个椭圆。,17,【例3.4】编写一个基于对话框的MFC应用程序Li3_4,使用CWindowDC类完成例3.3同样的功能。,18,3.2 GDI对象类CGdiObject,GDI对象是Windows图形设备接口的抽象绘图工具。除了画笔和画刷,其他GDI对象还包括字体、位图和调色板。MFC对GDI对象进行了很好的封装,
7、提供了封装GDI对象的类,如CPen、CBrush、CFont、CBitmap和CPalette等,这些类都是GDI对象类CGdiObject的派生类,它们的继承关系如图所示。,19,画笔。绘制对象的边框以及直线和曲线。,画刷。填充一个封闭图形对象内部区域,字体对象。用来绘制文本,位图。装载和操作位图,调色板。包含系统可用的色彩信息,是应用程序和彩色输出设备环境的接口,区域。用于设备环境(通常是窗口)内的区域操作,20,3.3 画笔和画刷的使用,21,3.3.1 使用库存(stock)对象,22,选择库存对象:使用SelectStockObject()函数 如果选择成功,函数SelectSto
8、ckObject()将返回以前的CGdiObject对象的指针。,23,利用CGdiObject类的成员函数CreateStockObject()将GDI对象设置成指定的库存对象。声明一个GDI对象,调用成员函数SelectObject(),将与库存对象关联的GDI对象选入当前的设备环境,代码如下所示。CBrushBrushOld,BrushNew;/关联库存画刷对象BrushNew.CreateStockObject(BLACK_BRUSH);BrushOldpDC-SelectObject(,24,【例3.5】编写一个单文档应用程序Li3_5,使用库存画笔和画刷在视图中绘制图形。,25,3
9、.3.2 创建和使用自定义画笔 如果要在设备环境中使用自己的画笔绘图,首先需要创建一个指定风格的画笔,然后选择所创建的画笔,最后还原画笔。1.创建画笔 创建画笔的方法有两种:,26,(1)定义画笔对象时直接创建 CPen PenNew(PS_DASH,1,RGB(255,0,0);笔的样式 线的宽度 线的颜色(2)先定义一个没有初始化的画笔对象,再调用CreatePen()函数创建指定画笔。CPen Pen;pen.CreatePen(PS_DASH,1,RGB(255,0,0);,27,28,2.选择创建的画笔 调用CDC类的成员函数SelectOject(),将创建的画笔选入当前设备环境。
10、选择新的画笔时应该保存以前的画笔对象。例如:CPen*PenOld;PenOld=pDC-SelectObject(,选择新画笔,保存原来的画笔,29,3.还原画笔 绘图完成后,调用CDC类的成员函数SelectOject()恢复设备环境以前的画笔工具,并通过调用CGdiObject类的成员函数DeleteObject()来删除画笔,释放GDI对象所占的内存资源。例如:恢复设备环境DC中原来的画笔:pDC-SelectObject(PenOld);删除创建的画笔:PenNew.DeleteObject();,30,【例3.6】编写一个单文档应用程序Li3_6,绘制不同样式、线宽及颜色的矩形。,
11、31,3.3.3 创建和使用自定义画刷包括三个步骤:创建画刷:先构造一个没有初始化的CBrush画刷对象,再调用CBrush类的初始化成员函数创建定制的画刷工具。类型不同的画刷使用不同的函数实现。选择创建的画刷还原画刷。CBrush类提供的创建函数中常用的有以下几个:,32,(1)创建指定颜色的实心画刷函数CreateSolidBrush()其原型为:Bool CreateSolidBrush(COLORREF crColor);例如创建一个红色的实心画刷:CBrush brush;brush.CreateSolidBrush(RGB(255,0,0);,33,(2)创建阴影画刷函数Creat
12、eHatchBrush()其原型为:Bool CreateHatchBrush(int nIndex,COLORREF crColor);参数nIndex用于指定阴影样式,它的值见下表。例如:创建一个具有水平和垂直交叉阴影线的红色画刷 CBrush brush;brush.CreateHatchBrush(HS_ CROSS,RGB(255,0,0);,34,画刷的阴影样式,35,(3)创建位图画刷函数CreatePatternBrush()采用8像素8像素的位图。例如:CBitMap mybmp;mybmp.LoadBitMap(IDB_MYBMP);CBrush brush;brush.C
13、reatePatternBrush(,先加载位图,36,【例3.7】编写一个单文档应用程序Li3_7,绘制不同颜色、不同阴影形式的填充矩形。,37,3.4 处理文本,设置文本显示属性 在默认情况下输出文本时,字体颜色是黑色,背景颜色是白色,背景模式为不透明模式。通过调用CDC类成员函数重新设置字体颜色、背景颜色和文本对齐方式等文本显示属性,下表是文本属性显示的常用函数。,38,文本属性函数,39,1.设置背景模式 SetBkMode()函数原型为:int SetBkMode(int nBkMode);其中,nBkMode指定背景模式,其值是OPAQUE(不透明)或TRANSPARENT(透明)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形与文本 图形 文本 PPT 课件
链接地址:https://www.31ppt.com/p-5484546.html