第12章GDI+基础编程.doc

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

PAGE 216 PAGE 87 第12章 GDI+基础编程 GDI+(Graphics Device Interface Plus,图形设备接口加)是Windows XP及以上版本操作系统的图形子系统,也是传统.NET框架的重要组成部分和窗体绘图的主要工具,负责在屏幕和打印机上绘制图形与图像并显示文本信息。顾名思义,GDI+是Windows传统图形设备接口GDI的后续版本,是建立在GDI之上的一个高层图形子系统。 GDI+是一种API,分别通过一套C++类和一套部署为托管代码的类来展现,这两套类分别被称为GDI+的“C++封装”和“托管类接口”。 GDI+不但在功能上比GDI要强大很多,而且在代码编写方面也更简单,因此会成为Windows图形图像程序开发的主要工具之一。由于篇幅所限,本书只简单介绍利用MFC进行GDI+编程的一些基本内容,不讲GDI+的API编程。基于GDI+托管封装的.NET窗体绘图,将在后面的第18章中介绍。对GDI+编程有兴趣的读者,还可以参考如下???本图书: 周鸣杨、赵景亮. 精通GDI+编程. 清华大学出版社,2004年2月(C++ / MFC)。 Mahesh Chand(韩江等译). GDI+图形程序设计. 电子工业出版社,2005年3月(C# / .NET)。 本章将介绍GDI+的结构和组成,讨论GDI+的几个主要新增特性与功能,说明GDI+给Windows图形图像程序的开发模式带来的变化。介绍C++封装的GDI+ API的具体使用方法,主要讲解二维矢量图形绘制和文字显示等基本内容。 GDI+的路径、区域、变换、图像处理和图元文件等高级编程内容,安排在下一章介绍。 12.1 GDI+的结构与组成 本节先介绍GDI+的体系结构,再列出C++封装的GDI+ API的具体组成。 12.1.1 GDI+的结构 GDI+是建立在GDI之上的一种高层图形子系统,基础是GDI+平面API,有C++和托管两种封装。 注意,虽然GDI+是GDI的发展,但是GDI+并非设计来替代GDI的,它不能独立工作,底层还得靠GDI来实现。 1.GDI+的体系结构 GDI+与GDI一样,都具有设备无关性。而且GDI+是建立在GDI之上的一种高层接口,供Windows API和.NET框架调用。与GDI类似,GDI+主要提供了二维矢量图形、图像处理和文字显示版式三类功能(参见图12-1),只是GDI+比GDI的功能更强大,且编程模式发生了很大改变。 设备驱动程序 计算机硬件 GDI+引擎 GDI 二维矢量图形 图像 文字 .NET框架 Win32/64 (C++) 图12-1 GDI+的体系结构 2.GDI+平面API与封装 GDI+提供(expose)了一个平面(flat)API,它包含大约600个函数,被实现在Gdiplus.dll中,声明在Gdiplusflat.h内。这些函数被封装进了GDI+ API的54个C++类的集合之中。 作为C++封装的替代方案,微软.NET框架提供了GDI+的一个托管代码封装类集,包含大约60个类、50个枚举和8个结构。它们分属于下列命名空间:System.Drawing、System.Drawing.Drawing2D、System.Drawing.Imaging、System.Drawing.Text和System. Drawing.Printing。 GDI+的平面API与其C++及托管封装的关系如图12-2所示。 12.1.2 GDI+的组成 GDI+的C++封装,包含了54个类、12个全局函数、(6类)226个图像常量、55种枚举和19种结构。GDI+的.NET托管封装,则包含了大约60个类、50个枚举和8个结构。这两种封装都是基于GDI+平面API的。本小节只介绍GDI+的C++封装,GDI+的托管封装将在第18章的.NET窗体绘图中有所涉及。 DllExports System.Drawing[.dll] Gdiplus Gdiplus.h afxwin.h C++封装 (MFC) C++封装 托管代码封装 设备驱动程序 计算机硬件(显示器、打印机等图形设备) GDI API GDI+平面API C++ C#、VB、C++/CLI、F# GDI+ API GDI+托管类接口 GDI类与结构 Gdi32.dll WinGDI.h Gdiplus.dll GdiplusFlat.h 图12-2 GDI+的封装与使用 1.类 GDI+的C++封装中共有54个类,核心类是Graphics,它是实际绘制直线、曲线、图形、图像和文本的类。许多其它GDI+类是与Graphics类一起使用的。例如,Graphics类的DrawLine方法接收Pen对象,该对象中存有所要

文档评论(0)

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

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

1亿VIP精品文档

相关文档