Windows GDI编程之设备环境

Windows应用程序借助GDI进行图形输出,GDI提供数百个函数用于创建、绘图和管理设备环境DC。DC是虚拟图形设备,应用程序在其上绘图,由设备驱动负责转换为物理设备图形。处理WM_PAINT消息时,通常使用BeginPaint和EndPaint获取及释放DC。此外,还可通过GetDC、GetWindowDC、CreateDC等函数获取不同类型的设备环境句柄,但释放方式各异。

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);//客户区绘图结束

其中ps,hdc定义如下

PAINTSTRUCT ps;
HDC hdc;

变量hdc是设备环境句柄类型HDC的变量,变量ps是类型PAINTSTRUCT的结构体变量,该结构体包含一个名为rcPaint的RECT矩形结构成员,rcPaint定义一个包围窗

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值