http://school.itzcn.com/video-vid-4121-spid-62.html
GDI+和GDI的区别是:GDI+用一个无状态模型取代了GDI中把选中项目放到设备环境(DC)对象上的状态模型,在GDI+中的每一步绘图操作都是独立的,图形对象是绘图操作中唯一保留的对象。
GDI+内容的组成:
1,二维几何图形的处理:
矢量图形由图元(如直线,曲线和轮廓等)组成,图元由坐标中的一组点来指定。如,一条直线可以用两个点来指定。
GDI+的Rect(矩形)类用于存储矩形和尺寸,Pen(画笔)类存储线条颜色、线宽和线条风格的信息;Graphics(图形)类用于绘制直线、矩形及其他图形;还有几个Brush(画刷)类存储用颜色图案来填充闭合图形和路径的方法。
2,显示图像
有些图像难以或不可能使用矢量图形技术来表示,例如工具栏中的按钮图标就难以使用直线和曲线的集合来表示。这种类型的图像一般都存储为位图,位图是代表屏幕上单个点的颜色的数字阵列。用于存储位图信息的数据结构比用于存储矢量图形的数据结构更为复杂。所以,在GDI+中有几个类用于处理这些复杂的位图信息。
3,排版
排版和使用各种各样的字体、尺寸和风格显示的文本有关,GDI+为这一复杂任务提供了大量的函数来完成各种风格不同的文本输出。
GDI+的新特性:
1,渐变画刷
画刷是用来填充控件、窗口和区域的一个GDI对象。GDI+技术的特殊画刷分为两种:
线性渐变画刷:它可以是双色渐变,也可以是多色渐变,默认情况下,双色渐变由起始颜色沿着水平方向平均过渡到终止颜色,其渐变过程是可以控制的。
路径渐变画刷:这是一个用于定义路径内部的渐变色画刷。渐变色从路径内部的中心点逐渐过渡到路径的边框。GDI+中使用GraphicsPath(图形路径)来定义路径,应用程序使用路径来绘制形体的轮廓、填充形体内部及创建剪切区域。
2,独立的路径对象
3,矩阵对象
设备环境句柄的概念:
设备环境的数据结构存储了与显示器(或打印机)的性能、属性相关的详细信息,这些数据信息决定了程序如何在显示器上进行输出。所有的输出都是通过设备环境来实现的。设备环境是GDI的核心,Graphics(图形)对象是GDI+的核心。
Graphics(图形)对象和设备环境类似,都与屏幕上的一个特殊窗口关联,二者都包含了一些用于指定怎样绘制项目的属性(如画刷的色彩、文本输出方向等)信息,这些具体的属性值指明了进行绘图的方式与方法。与设备环境不同的是,Graphics对象并未将画笔、画刷、路径、图像或字体对象与自身进行关联。
GDI是基于句柄,GDI+是基于对象模型。