3、图形与文【荐】.doc

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3、图形与文【荐】.doc

第 3 章 图形和文本输出 3.1 图形设备接口和设备环境 3.2 GDI对象CGdiObject 3.3 画笔和画刷的使用 3.4 处理文本 3.5 位图 3.6 应用实例 1 什么是GDI 2 什么是CDC、CClientDC 3 什么是WM_PAINT消息和OnDraw()函数 4 如何定义CDC对象 5 常用的绘制图形、文字、图像的函数 6 画笔、画刷、字体对象如何使用 3.1 图形设备接口和设备环境 3.1.1 图形设备接口 GDI是Windows提供了的图形设备接口(Graphics Device Interface,GDI),使用GDI编程实现在窗口上输出图形图像。 GDI负责管理用户绘图操作时功能的转换,实现设备无关性。 应用程序可以使用GDI创建3种类型的图形输出:矢量图形、光栅图形和文本。 1.矢量图形 矢量图形输出是指画线和填充图形,包括点、直线、曲线、多边形、扇形和矩形等。通常所说的图形都是指矢量图形。 2.光栅图形 光栅图形输出是指光栅图形函数对以位图形式存储的数据进行操作,它包括各种位图和图标的输出。光栅图形一般称为图像。 3.文本 与DOS字符方式下输出文本不同,Windows中的文本是按图形方式输出的。 3.1.2 设备环境 Windows应用程序的输出不直接面向显示器或打印机等物理设备,而是面向一个称之为设备环境(Device Context,DC)的虚拟逻辑设备。 设备环境DC,也称设备描述表或设备上下文。它是由GDI创建、用来代表设备连接的数据结构。 DC的主要功能有以下几种: (1) 允许应用程序使用一个输出设备。 (2) 提供Windows应用程序、设备驱动和输出设备之间的连接。 (3) 保存当前信息,例如当前的画笔、画刷、字体和位图等图形对象及其属性,以及颜色和背景等影响图形输出的绘图模式。 (4) 保存窗口剪切区域,限制程序输出到输出设备中窗口覆盖的区域。 3.1.3 设备环境类 GDI和DC是Windows的接口,在MFC中,具体功能封装在CDC类,称为设备环境类。 1. 设备环境类CDC及其功能 CDC 是所有设备环境类的基类,对GDI的所有绘图函数进行了封装 CClientDC 是CDC类的派生类,代表窗口客户区的设备环境 代表整个窗口的设备环境,包括客户区和非客户区 2. 设备环境类CDC的一些常用函数 Arc() Chord() Ellipse() LineTo() MoveTo() Ployline() Pie() Rectangle() 3.1.4 颜色的设置 Windows用COLORREF类型的数据存放颜色,它是一个32位整数。 任何一种颜色都是由红、绿、蓝3种基本颜色组成的,COLORREF类型数据的低位字节存放红色强度值,第2个字节存放绿色强度值,第3个字节存放蓝色强度值,高位字节为0,每一种颜色分量的取值范围为0~255。 MFC提供了RGB宏,用于设置颜色,其使用形式为: RGB(byRed,byGreen,byBlue) 其中参数byRed、byGreen和byBlue分别表示红、绿、蓝分量值(范围0~255)。 例: COLORREF color; color = RGB(128,0,200); 3.1.5 获取设备环境 1.传统的SDK获取设备环境的方法(略) 2. MFC应用程序获取设备环境的方法,即创建DC对象的方法。 1) 如果在OnDraw中,参数会传入一个CDC指针,直接使用。 void CMyView::OnDraw(CDC* pDC); 2)如果不在OnDraw中,要创建和构造CClientDC对象 CClientDC dc(this); 注意:只有CClientDC可以用在OnDraw()函数之外。 3)CClientDC对象可以定义为全局的或局部的,全局的如下例: 在类中定义指针 CClientDC *dc; 在类的初始化函数中构造指针 dc = new CClientDC(this); 3.1.6 编程实例 【例3.1】 编写一个单文档的MFC应用程序Li3_1,利用表3-2中的函数绘制几种常见的几何图形。当程序运行时,显示如图所示结果。 【例3.2】编写一个单文档的MFC应用程序Li3_2,使用CPaintDC类完成例3.1同样的功能。 【例3.3】 编写一个基于对话框的MFC应用程序Li3_3,程序运行后,当用户在窗口中单击鼠标左键时,在窗口中绘制一个椭圆。 【例3.4】编写一个基于对话框的MFC应用程序Li3_4,使用 3.2

文档评论(0)

cnsg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档