2024年4月29日发(作者:)

MFC GDI绘图基础

一.关于GDI的基本概念

什么是GDI?

Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics

Device Interface)将图形绘制在显示器上。

在Windows操作系统中,动态链接库C:(GDI

Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输出像素、在打印机上输

出硬拷贝以及绘制Windows用户界面功能。在Visual C++6.0中的头文件C:Program

FilesMicrosoft Visual StudioVC98Includewingdi.h和Visual Studio 2005中的头文

件C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKIncludeWinGDI.h

是访问库文件的钥匙。下面我们大致浏览一下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),也称为设备描述表或设备上下文。

设备环境保存了绘图操作中一些共同需要设置的信息,如当前的画笔、画刷、字体和

位图等图形对象及属性,以及坐标映射、颜色和背景等影响图形输出的绘图模式。形象的

说,一个设备环境提供了一张画布和一些绘画的工具,我们可以使用不同格式、颜色的绘

画工具在上面涂鸦。这里,设备环境中的“设备”是指任何类型的显示器或打印机等输出