图形设备接口与绘图.ppt

图形设备接口与绘图.ppt

ID:50609692

大小:946.00 KB

页数:37页

时间:2020-03-14

图形设备接口与绘图.ppt_第1页
图形设备接口与绘图.ppt_第2页
图形设备接口与绘图.ppt_第3页
图形设备接口与绘图.ppt_第4页
图形设备接口与绘图.ppt_第5页
资源描述:

《图形设备接口与绘图.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、图形设备接口与绘图Chap7本章内容设备环境和设备环境类GDI绘图对象及其管理映射模式CDC中的绘图操作及其特点绘制文本Windows的图形设备接口Windows图形设备接口(GDI,GraphicsDeviceInterface)是为与设备无关的图形设计的。所谓设备无关性,就是操作系统屏蔽了硬件设备的差异。因为计算机常与一系列不同的设备结合在一起,如打印机、绘图仪等输出设备以及显示设备等,因而设备无关性的图形能使用户编程时无需考虑特殊的硬件设置,这对Windows编程来说是非常重要的。Windows应用程序使用图形

2、设备接口和Windows设备驱动程序来支持与设备无关的图形。图形设备接口(GDl)是Windows系统的重要组成部分,负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字。Windows的图形设备接口计算机输出设备和显示设备种类繁多,包括不同技术标准的显示器、打印机、绘图仪等,每类设备又包含许多不同的型号。为了适应不同的设备,Windows系统提供应用程序与具体设备分离的功能。操作系统管理并协调一系列输出设备驱动程序,将应用程序的图形输出请求转换为打印机、绘图仪、显示器或其他输出设备上的输出。GD

3、I的设备无关性是Windows操作系统的特色之一。对于开发人员而言,所要做的工作仅仅是在系统的帮助下建立一个与某个实际输出设备的关联,以要求系统加载相应的设备驱动程序,其他的具体输出操作则由系统实现。Windows系统分担了应用程序的硬件设备适配器功能。设备描述表(DeviceContext)设备描述表是一个用来确定任何设备的GDI输出的位置和形象的属性的集合。应用程序并不能直接存取设备描述表,但是,应用程序可以使用设备描述表的句柄来间接地存取设备描述表及其属性。当程序为设备描述表要求一个句柄时,就将创建一个设备描述

4、表。创建的设备描述表包含了它所有的属性和默认值,应用程序可以修改这些属性。应用程序对图形的操作均参照设备描述表中的属性执行。可以将设备描述表看成图形的“输出模板”。依靠这块模板,当程序员调用GDI函数输出图形或文字时,不必关心诸如背景颜色、字体等问题。设备描述表(DeviceContext)设备环境(windows保存的一个数据结构,该结构包含应用程序向设备输出时所需要的信息。)应用程序MFC设备环境类图形设备接口设备驱动程序8.1.2设备环境类设备环境类CDC的分类CClientDC:只能在窗口的用户区绘图.用户区

5、指窗口中除去边框、标题栏、菜单栏、状态栏等的区域、通常先调用窗口的GetClientRect()来获取用户区的大小.CWindowDC:能在窗口的任意位置绘图.通常先调用GetWindowRect()来获取窗口在屏幕坐标系中的外边框坐标.CPaintDC:往往在OnPaint()函数中使用,OnPaint()函数首先构造一个CpaintDC对象,再把它的指针传给OnDraw()函数进行绘图.8.1.2设备环境类设备环境类CDC的内容当前GDI绘图对象及其管理映射方式绘图状态管理和绘图操作8.2GDI绘图对象及其管理建

6、立设备环境调用BeginPaint()函数应用程序响应WM_PAINT消息进行图形刷新时,由OnPaint()函数调用BeginPaint()函数获取设备环境指针,并把它传递给OnDraw()函数完成绘图.调用GetDC()函数如果绘图工作不是由WM_PAINT消息驱动的则调用GetDC()函数获取设备环境.8.2.2GDI对象的分类CPenCBrushCFontCRgnCPaletteCBitmap8.2.3CPen8.2.3CPen例:HPENhpold,hpnew;hpnew=(HPEN)GetStockObj

7、ect(BLACK_PEN);hpold=(HPEN)pDC->SelectObject(hpnew);pDC->MoveTo(10,10);pDC->LineTo(100,100);pDC->SelectObject(hpold);8.2.3CPen8.2.3CPen例:CPenmyPen,*oldPen;myPen.CreatePen(PS_SOLID,10,RGB(255,0,0));oldPen=(CPen*)pDC->SelectObject(&myPen);pDC->MoveTo(10,10);pDC->

8、LineTo(100,100);pDC->SelectObject(oldPen);8.2.4CBrush8.2.4CBrush例:HBRUSHhb,oldhb;hb=(HBRUSH)GetStockObject(BLACK_BRUSH);oldhb=(HBRUSH)pDC->SelectObject(hb);pDC->Rectangle(20

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。