- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lesson07-08图形设备接口.
Lesson 07-08 图形设备接口
Windows系统具有丰富的图形界面。Windows系统提供许多函数来实现绘图的要求。而图形设备接口(Graphics Device Interface,简写为GDI)就可看作是这些函数的集合。
GDI表示的是一个抽象的接口。通过该接口可以实现对图形的颜色、线条的粗细等属性的控制(甚至包括输出文字在内)。应用程序可以通过调用这些GDI函数和硬件打交道,而不必知道到底是哪个厂家生产的硬件,从而实现了设备无关性。Windows系统本身也使用GDI来绘制用户界面的各个部分。
一、设备环境
1.设备环境
Windows默认使用客户区坐标系,其原点在窗口客户区的左上角,X轴的正方向指向右边,Y轴的正方向指向下边。
当应用程序并没有设置颜色、字体等时,系统使用默认的设置。这些默认的设置保存在设备环境中。如果没有设备环境,则每输出一个字符串(调用一次TextOut函数),就需要把字体和颜色也作为参数传递给TextOut函数,而且这样的参数有很多。为了避免这样的麻烦,Windows就把这些可能会重复的参数放在了设备环境中,这样每次只需要多传入一个设备环境的指针就可以了,大大减少了重复工作。
设备环境(Device Context,缩写为DC,有时译为设备上下文,也称设备描述表)是一种包含各种绘图属性(如字体、颜色等等)和方法(即各种绘图函数)的数据结构(或者集合)。它不仅可以绘制各种图形,而且还可以确定在应用窗口中绘制图形的方式,即确定绘图混和模式和映射模式。
用户在绘图之前,必须获取绘图窗口区域的一个设备环境DC,才能进行GDI函数的调用,执行适合于设备环境DC的命令(就像OnDraw函数中的pDC指针)。
DC中除了提供绘图的函数(如:TextOut)以外,还会提供给用户改变绘图属性的函数,如颜色。Windows的设备环境是GDI的关键元素,它代表了不同的物理设备。分为4种类型:显示型、打印机型、内存型和信息型。每种类型的设备环境都有各自的特定用途,见下表:
设备环境的类型和用途
设备环境 用途 显示器型 支持视频显示器上的绘图操作 打印机型 支持打印机和绘图仪上的绘图操作 内存型 支持位图上的绘图操作 信息型 支持设备数据的访问 2.MFC中的设备环境类
在MFC类库中,设备环境被CDC类封装了起来,而CDC类下面又有4个派生类,各有特点,并可以完成不同的功能,如下所示:
CMetaFileDC专门用于Windows图元文件,剩下的三种DC类之间存在差别:
CDC类的派生类
派生类名称 说明 CClientDC 说明一个客户区设备环境,提供对窗口客户区域的图形访问。在窗口中画图时可使用这种DC,但对WM_PAINT消息除外 CWindowDC 可以提供在整个窗口(包括客户区和非客户区)中画图的设备环境 CPaintDC 这是创建响应WM_PAINT消息的设备环境,应用程序可以使用此类更新Windows显示,通常在MFC应用程序的OnPaint()函数中使用 CMetaFileDC 这个设备环境代表Windows元文件,包含一系列命令以重新产生图像。要创建独立于设备的文件时可使用这种DC,用户可以回放这种文件来创建图像
①CWindowDC类与CPaintDC和CClientDC类的区别
■绘图区域不同:CWindowDC类与CPaintDC和CClientDC类的区别的一个方面就是绘图区域不同。用CPaintDC类和CClientDC类的对象绘制图形时,绘制区只能是客户区,而不能在非客户区,而CWindowDC可以在非客户区进行图形绘制。
■绘图坐标系不同:在CWindowDC绘图类下,坐标系是建立在整个屏幕上的,在像素坐标方式下,坐标原点在屏幕的左上角,而在CPaintDC和CClientDC绘图类下,坐标系是建立在客户区上的,在像素坐标方式下,坐标原点在客户区的左上角。
②CPaintDC类与CClientDC类的区别
■绘图机制不同:CPaintDC类与CClientDC类都是在窗口的客户区内绘制图形,但两者在绘制机制上有着本质的区别。CPaintDC类应用在OnPaint函数中,以响应Windows的WM_PAINT消息,而CClientDC应用在非响应WM_PAINT消息的情况下。CPaintDC类响应WM_PAINT消息,自动完成绘制,这对维护图形的完整性有着重要的作用。例如在一个窗口中,已经绘制了n条直线,这个窗口的完整性可能会被破坏(如被对话框覆盖),当破坏完整性的程序结束时,即覆盖取消,这个窗口就会接收到一个WM_PAINT消息,得到此消息后,激活消息处理函数(如OnPaint)进行窗口绘制。CPaintDC类对象就担负着此时的绘制工
您可能关注的文档
- LED灯具产品型号命名大全..doc
- LED灯具外贸行业常用词汇汇总..doc
- LED灯带规格参数..doc
- LED灯循环显示序列号(序列号模拟)..doc
- LED灯电路图和制造流程..doc
- LED照明PWM调光技术..doc
- LED照明灯科学发展之路..doc
- LED用蓝宝石晶体生长项目规划..doc
- LED电子显示屏维修维护操作..doc
- LED照明测试仪器..docx
- 人教A版必修第一册 高一数学上册 考点巩固练习卷 专题14 《三角函数的图象和性质》一(解析版).docx
- 《列那狐的故事》阅读题及答案(67题).docx
- 人教A版必修第一册 高一数学上册 考点巩固练习卷 专题8 函数的应用(一) 二(原卷版).docx
- 人教A版必修第一册 高一数学上册 考点巩固练习卷 专题8 函数的应用(一) 二(解析版).docx
- 人教A版必修第一册 高一数学上册 考点巩固练习卷 专题8 函数的应用(一) 一(解析版).docx
- 2024上半年省考第二季行测模考大赛(广东乡镇卷).docx
- 手卫生要求及管理(PPT课件).pptx
- 2024上半年省考第二季行测模考大赛(广东县级卷).docx
- 人教A版必修第一册 高一数学上册 考点巩固练习卷 专题9 指数与指数函数 二(解析版).docx
- 分子间作用力使用.pptx
文档评论(0)