- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 3G技术资料-CDMA信源改造培训【荐】.pdf
- 3G改造项目06.02.13【荐】.ppt
- 3G数据传送基本技术【荐】.pdf
- 3G改造项目培训资料【荐】.ppt
- 3G新发展及演进策略思考【荐】.doc
- 3G方案2【荐】.pdf
- 3G无线上网卡业务实施文档【荐】.pdf
- 3G无线上网配置-v1【荐】.doc
- 3G无线安全接入解决方案【荐】.pdf
- 3G无线网络规划与覆盖预测【荐】.pdf
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
文档评论(0)