Windows应用程序不支持标准输出函数(如printf),应用程序包括文字在内的所有数据均是以图形方式“绘制”到窗口上的。
Windows通过图形设备接口GDI对图形输出进行支持。GDI由几百个函数和与此相关的数据类型、宏定义、和结构体组成。主要有:创建和删除设备描述表函数,获取设备信息函数,使用GDI绘图对象函数,绘图函数,设置和获取设备参数函数等,其显示的图形类型(图元)有:直线,曲线,填充,位图,文本等。
## 设备环境 ##
Windows对图形显示设备进行了封装,形成了一个统一的虚拟图形显示设备。应用程序可以在这个虚拟设备上进行绘图,而虚拟设备图形转换为物理设备图形的任务则由设备驱动去完成。这个虚拟图形设备用一个包含各种设备属性的数据结构来表示,称为设备环境DC。
从应用程序的角度看,设备环境DC就是windows提供的一个画板,程序在其上绘图。当我们想在一个图形输出设备上绘图时,必须首先获取设备环境句柄hdc,然后以此为参数调用GDI绘图函数。
windows提供了几种获取设备环境句柄的方法。如果在处理一条消息时获取了设备环境句柄,那么在退出窗口进程WndProc之前释放或者删除它。一旦释放了DC句柄,它就不能再使用了。
最常用的获取设备环境句柄的方法是处理WM_PAINT消息时,使用BeginPaint和EndPaint :
hdc=BeginPaint(hWnd,&ps); //客户区准备绘图
//GDI绘图调用...
EndPaint(hWnd,&ps);//客户区绘图结束
<