MFC GDI 绘图基础 一.关于GDI 的基本概念 什么是GDI? Windows 绘图的实质就是利用Windows 提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。 在Windows 操作系统中,动态链接库C:\WINDOWS\system32\gdi32.dll(GDI Client DLL)中定义了GDI 函数,实现与设备无关的包括屏幕上输出像素、在打印机上输出硬拷贝以及绘制Windows 用户界面功能。在Visual C++6.0 中的头文件 C:\Program Files\Microsoft Visual Studio\VC98\Include\wingdi.h 和 Visual Studio 2005 中的头文件 C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\WinGDI.h 是访问 gdi32.dll 库文件的钥匙。下面我们大致浏览一下 wingdi.h(included in Windows.h)头文件: /* Bitmap Header Definition */定义了BITMAP 位图结构 /* Mapping Modes */定义了DC 中的坐标映射方式,包括以下常用函数: SetMapMode、SetViewportExtEx、SetViewportOrgEx、 SetWindowExtEx 、SetWindowOrgEx。 /* Stock Logical Objects */系统预定义的堆(STOCK)对象,包括BRUSH、PEN 和 FONT对象 /* Brush Styles */定义了画刷格式,包括SOLID、HOLLOW、HATCHED 等格式 /* Hatch Styles */定义了画刷阴影格式,包括: HS_VERTICAL /* ||||| */ HS_FDIAGONAL /* \\\\\ */ HS_BDIAGONAL /* ///// */ HS_CROSS /* +++++ */ HS_DIAGCROSS /* xxxxx */ /* Pen Styles */定义了画笔格式,包括SOLID、DASH、DOT 等格式 什么是DC? 设备环境DC(Device Context),也称为设备描述表或设备上下文。 设备环境保存了绘图操作中一些共同需要设置的信息,如当前的画笔、画刷、字体和位图等图形对象及属性,以及坐标映射、颜色和背景等影响图形输出的绘图模式。形象的说,一个设备环境提供了一张画布和一些绘画的工具,我们可以使用不同格式、颜色的绘画工具在上面涂鸦。这里,设备环境中的“设备”是指任何类型的显示器或打印机等输出设备,绘图时,我们不必关心所使用设备的编程的原理和方法,所有的绘制操作必须通过设备环境进行间接的处理,Windows 会自动将设备环境所描述的结构映射到相应的物理设备上。 从根本上来说,DC 它是 Windows 内部使用的数据结构,它存储着向设备输出时说需要的信息,应用程序利用它定义图形对象及其属性,并实现应用程序、设备驱...