当前位置: 首页 > 文档资料 > Gdip 编程基础 >

1. GDI+的结构与组成

优质
小牛编辑
130浏览
2023-12-01

本节先介绍 GDI+的体系结构,再列出 C++封装的 GDI+ API 的具体组成。

1.1 GDI+的结构

GDI+是建立在 GDI 之上的一种高层图形子系统,基础是 GDI+平面 API,有 C++和托 管两种封装。

注意,虽然 GDI+是 GDI 的发展,但是 GDI+并非设计来替代 GDI 的,它不能独立工作, 底层还得靠 GDI 实现。

(1)GDI+的体系结构

GDI+与 GDI 一样,都具有设备无关性。而且 GDI+是建立在 GDI 之上的一种高层接口, 供 Windows API 和.NET 框架调用。与 GDI 类似,GDI+主要提供了二维矢量图形、图像处 理和文字显示版式三类功能(参见图 14-1),只是 GDI+比 GDI 的功能更强大,且编程模式发生了改变。

图 14-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++及托管封装的关系如图 14-2 所示。

图 14-2 GDI+的封装与使用