WEB开发网
开发学院软件开发VC GDI+编程基础(一)GDI+ Vs GDI 阅读

GDI+编程基础(一)GDI+ Vs GDI

 2006-07-23 11:33:18 来源:WEB开发网   
核心提示: 四、编程模式的变化“GDI uses a stateful model, whereas GDI+ uses a stateless”——GDI是有状态的,GDI+是无无状态的,GDI+编程基础(一)GDI+ Vs GDI(2),1、不再使用

四、编程模式的变化

“GDI uses a stateful model, whereas GDI+ uses a stateless”——GDI是有状态的,GDI+是无无状态的。

1、不再使用设备环境或句柄

在使用GDI绘图时,必须要指定一个设备环境(DC),用来将某个窗口或设备与设备环境类的句柄指针关联起来,所有的绘图操作都与该句柄有关。而GDI+不再使用这个设备环境或句柄,取而代之是使用Graphics对象。与设备环境相类似,Graphics对象也是将屏幕的某一个窗口与之相关联,并包含绘图操作所需要的相关属性。但是,只有这个Graphics对象与设备环境句柄还存在着联系,其余的如Pen、Brush、Image和Font等对象均不再使用设备环境。

2、Pen、Brush,Font,Image等对象是图形对象独立的

画笔对象能与用于提供绘制方法的图形对象分开创建于维护,Graphics绘图方法直接将Pen对象作为自己的参数,从而避免了在GDI使用SelectObject进行繁琐的切换,类似的还有Brush、Path、Image和Font等。

3、“当前位置”

GDI绘图操作(如画线)中总存在一个被称为"当前位置"的特殊位置。每次画线都是以此当前位置为起始点,画线操作结束之后,直线的结束点位置又成为了当前位置。设置当前位置的理由是为了提高画线操作的效率,因为在一些场合下,总是一条直线连着另一条直线,首尾相接。有了当前位置的自动更新,就可避免每次画线时都要给出两点的坐标。尽管有其必要性,但是单独绘制一条直线的场合总是比较多的,因此GDI+取消这个"当前位置"以避免当无法确定"当前位置"时所造成的绘图的差错,取而代之的是直接在DrawLine中指定直线起止点的坐标。   

4、绘制和填充

上一页  1 2 3 4 5  下一页

Tags:GDI 编程 基础

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接