DC简介
DC英文全称为Device Content,中文翻译即为设备上下文。第一次使用这个是在MFC编程的时候,完全不能理解这个的含义和作用。
近来要用wxWidget进行图像的绘制,又碰到了DC的使用,因此做下总结。
DC的形象在我看来像是个画板,它有个SelectObject方法,用来绑定绘制的对象,这个就好比是纸张画布了。除此DC还有SetPen和SetBrush,这个就是选择画笔和画刷了,以及各种Draw方法,用于在纸上绘制图案。DC还有个比较不一样的方法,就是Blit了,其是将一个DC的部分内容复制到另一个DC里,相当于copy操作。
说完了DC,再说说这个画纸,这个就很多样了,其决定了DC的表现形式。我们常用的画纸是什么呢,当然就是屏幕了。我们可以在屏幕上绘制和看到我们想要的一切。除此之外还有图片,打印机等。
wxWidgets的各类DC
- wxClientDC. 用来在一个窗口的客户区绘画。
- wxClientDC. 用来在一个窗口的客户区绘画。
- wxBufferedDC. 用来代替wxClientDC来进行双缓冲区绘画。
- wxWindowDC. 用来在窗口的客户区和非客户区(比如标题栏)绘画.这个设备上下文极少使 用而且也不是每个平台都支持。
- wxPaintDC. 仅用在重绘事件的处理函数中,用来在窗口的客户区绘画。
- wxBufferedPaintDC. 和wxPaintDC类似,不过采用双缓冲区进行绘画。
- wxScreenDC. 用来直接在屏幕上绘画。
- wxMemoryDC. 用来直接在图片上绘画。
- wxMetafileDC. 用来创建一个图元文件(只支持Windows和Mac OS X).
- wxPrinterDC. 用来在打印机上绘画。
- wxPostScriptDC. 用来在PostScript文件上或者在支持PostScript的打印机上绘画。