图形设备接口跟绘图.ppt

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

图形设备接口与绘图 Chap 7 本章内容 设备环境和设备环境类 GDI绘图对象及其管理 映射模式 CDC中的绘图操作及其特点 绘制文本 Windows的图形设备接口 Windows图形设备接口(GDI,Graphics Device Interface)是为与设备无关的图形设计的。 所谓设备无关性,就是操作系统屏蔽了硬件设备的差异。因为计算机常与一系列不同的设备结合在一起,如打印机、绘图仪等输出设备以及显示设备等,因而设备无关性的图形能使用户编程时无需考虑特殊的硬件设置,这对Windows编程来说是非常重要的。 Windows应用程序使用图形设备接口和Windows设备驱动程序来支持与设备无关的图形。图形设备接口(GDl)是Windows系统的重要组成部分,负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字。 Windows的图形设备接口 计算机输出设备和显示设备种类繁多,包括不同技术标准的显示器、打印机、绘图仪等,每类设备又包含许多不同的型号。为了适应不同的设备,Windows系统提供应用程序与具体设备分离的功能。 操作系统管理并协调一系列输出设备驱动程序,将应用程序的图形输出请求转换为打印机、绘图仪、显示器或其他输出设备上的输出。 GDI的设备无关性是Windows操作系统的特色之一。对于开发人员而言,所要做的工作仅仅是在系统的帮助下建立一个与某个实际输出设备的关联,以要求系统加载相应的设备驱动程序,其他的具体输出操作则由系统实现。Windows系统分担了应用程序的硬件设备适配器功能。 设备描述表(Device Context) 设备描述表是一个用来确定任何设备的GDI输出的位置和形象的属性的集合。 应用程序并不能直接存取设备描述表,但是,应用程序可以使用设备描述表的句柄来间接地存取设备描述表及其属性。 当程序为设备描述表要求一个句柄时,就将创建一个设备描述表。创建的设备描述表包含了它所有的属性和默认值,应用程序可以修改这些属性。 应用程序对图形的操作均参照设备描述表中的属性执行。 可以将设备描述表看成图形的“输出模板”。依靠这块模板,当程序员调用GDI函数输出图形或文字时,不必关心诸如背景颜色、字体等问题。 设备描述表(Device Context) 设备环境(windows保存的一个数据结构,该结构包含应用程序向设备输出时所需要的信息。) 8.1.2 设备环境类 设备环境类CDC的分类 CClientDC:只能在窗口的用户区绘图.用户区指窗口中除去边框、标题栏、菜单栏、状态栏等的区域、通常先调用窗口的GetClientRect()来获取用户区的大小. CWindowDC:能在窗口的任意位置绘图.通常先调用GetWindowRect()来获取窗口在屏幕坐标系中的外边框坐标. CPaintDC:往往在OnPaint()函数中使用,OnPaint()函数首先构造一个CpaintDC对象,再把它的指针传给OnDraw()函数进行绘图. 8.1.2 设备环境类 设备环境类CDC的内容 当前GDI绘图对象及其管理 映射方式 绘图状态管理和绘图操作 8.2 GDI绘图对象及其管理 建立设备环境 调用BeginPaint()函数 应用程序响应WM_PAINT消息进行图形刷新时,由OnPaint()函数调用BeginPaint()函数获取设备环境指针,并把它传递给OnDraw()函数完成绘图. 调用GetDC()函数 如果绘图工作不是由WM_PAINT消息驱动的则调用GetDC()函数获取设备环境. 8.2.2 GDI对象的分类 CPen CBrush CFont CRgn CPalette CBitmap 8.2.3 CPen 8.2.3 CPen 8.2.3 CPen 8.2.3 CPen 8.2.4 CBrush 8.2.4 CBrush 8.2.4 CBrush 8.2.4 CBrush 8.2.4 CBrush 8.2.5 CFont 8.2.5 CFont 8.2.5 CFont 8.2.5 CFont 8.2.5 CFont 8.2.5 CFont 当调用CreatFontIndirect()函数时,必须使用LOGFONT结构来构造CFont对象来绘制字体,LOGFONT结构如下: 8.2.5 CFont 8.2.5 CFont 8.4CDC中的绘图操作及其特点 设置绘图参数 设置绘图模式 int SetRop2(int DrawMode); 设置背景颜色 Virtual COLORREF SetBKColor(COLO

文档评论(0)

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

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

1亿VIP精品文档

相关文档