前些天翻译的一段关于GDI

翻译自<programming with MFC>

The Windows GDI
在一个单任务的环境下,比如MS-DOS,游戏开始时候输出给屏幕
的是"anything goes",运行的程序能随时做它想做的,画条线啊,
重新编写适配器的调色板啊,换到另一种video的形式等.
在窗口化,多任务像Windows这样的环境下,程序不能提供起这样的自由,
因为从a程序输出必须与b程序的输出分开.这意味着,每个程序的输出都必须限定给
它自己的窗口.GDI使用一个简单的机制来保证每个程序在窗口中绘画时遵循规则.
这个机制便是device context.
当一个Windows程序向屏幕,打印机或者其他设备绘画时,它不直接输出像素点给那些设备.
它画在一个逻辑的叫做device context上.DC是包含在Windows下的一个数据结构,这个数据结构的域
描述了GDI要知道的关于显示的一切.
在绘画前,Windows程序需要从GDI得到一个DC的句柄,然后在它call GDI输出函数的时候回传给GDI.
没有一个有效的DC句柄,GDI就不能运作.
通过DC,DGI能保证任何关于程序绘画画在屏幕的特殊区域.
DC扮演一个很重要的角色使GDI不依赖具体设备.把一个句柄给DC,
有了这个DC句柄,GDI函数就能在不同的输出设备上.
当你用MFC编写Windows程序时,DC更具有重大意义.
In addition to serving as the key that unlocks the door to output devices, a device context object encapsulates the GDI functions that programs use to generate output.
除了像当开门的钥匙一样输出给设备,DC对象
MFC里,你不用直接用DC句柄调用GDI函数输出,至少不必直接那样做,instead,你创建一个DC对象调用它的成员函数来绘画.CDC类是一个方便的包裹了DC和一个需要DC句柄传入GDI函数的一个类
CDC的继承类CPaintDC 和CClientDC代表Windows程序使用的两种不同的DC.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值