一.关于GDI的基本概念 什么是GDI Window s 绘图的实质就是利用Window s 提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。 /* 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内部使用的数据结构,它存储着向设备输出时说需要的信息,应用程序利用它定义图形对象及其属性,并实现应用程序、设备驱动程序和输出设备之间绘图命令的转换。要想调用GDI函数向某个区域输出文字或绘制图形,必须先取得或建立设备环境句柄,应用程序每一次绘图操作均按照设备环境中的设置的绘图属性进行。 设备环境不像其他 Windows结构,在程序中不能直接存取设备环境结构,只能通过系统提供的一系列函数或使用设备环境的句柄 HDC来间接地获取或设置设备环境结构中的各项属性,这些属性包括显示器高度和宽度、支持的颜色数和分辨率等。 MFC中与 GDI有关的类 为了支持 GDI绘图,MFC提供了两种重要的类:设备环境DC(Device Context)类,用于设置绘图属性和绘制图形;绘图对象类,封装了...