一.关于 GDI 的基本概念
什么是 GDI?
绘图的实质就是利用 提供的图形设备接口 (
)将图形绘制在显示器上。
在 操作系统中,动态链接库 !!(
!"")中定义了 函数,实现与设备无关的包括屏幕上输出像素、在打印机上输出硬
拷贝以及绘制 用户界面功能。在 #$!%%& ' 中的头文件 (
)!*#$!$#+,!$ 和 #$!$''- 中的头文件
()!*#$!$,#(!.!$ 是访问
!! 库文件的钥匙。下面我们大致浏览一下 (!$ )头文
件:
/012/定义了 03*4( 位图结构
/**/定义了 中的坐标映射方式,包括以下常用函数:
**、#5656、#56、h56567、
56。
/8"!9:/系统预定义的堆(3.)对象,包括 0;<1、(5 和
)3 对象
/0$!/定义了画刷格式,包括 "、1""、14315 等格式
/1!/定义了画刷阴影格式,包括
1=#5;34"7777/>>>>>/
1=)44"77//
1=044"77//
1=;7777777/%%%%%/
1=4;77/66666/
/(!/定义了画笔格式,包括 "、41、3 等格式
什么是 DC?
设备环境 (6),也称为设备描述表或设备上下文。
设备环境保存了绘图操作中一些共同需要设置的信息,如当前的画笔、画刷、字体和位图
等图形对象及属性,以及坐标映射、颜色和背景等影响图形输出的绘图模式。形象的说,一个
设备环境提供了一张画布和一些绘画的工具,我们可以使用不同格式、颜色的绘画工具在上面
涂鸦。这里,设备环境中的“设备”是指任何类型的显示器或打印机等输出设备,绘图时,我们
不必关心所使用设备的编程的原理和方法,所有的绘制操作必须通过设备环境进行间接的处理,
会自动将设备环境所描述的结构映射到相应的物理设备上。
从根本上来说, 它是 内部使用的数据结构,它存储着向设备输出时说需要的
信息,应用程序利用它定义图形对象及其属性,并实现应用程序、设备驱动程序和输出设备之
间绘图命令的转换。要想调用 函数向某个区域输出文字或绘制图形,必须先取得或建立设
备环境句柄,应用程序每一次绘图操作均按照设备环境中的设置的绘图属性进行。
设备环境不像其他 结构,在程序中不能直接存取设备环境结构,只能通过系统
提供的一系列函数或使用设备环境的句柄 1 来间接地获取或设置设备环境结构中的各项属
性,这些属性包括显示器高度和宽度、支持的颜色数和分辨率等。
MFC 中与 GDI 有关的类
为了支持 绘图,*) 提供了两种重要的类:设备环境 (6)类,
用于设置绘图属性和绘制图形;绘图对象类,封装了各种 绘图对象,包括画笔、刷子、字
体、位图、调色板和区域。
评论0