WHAT IS:设备上下文(DC,Device Context)

      DC(Device Context),中文叫设备上下文(Context有环境和上下文的意思,我觉得环境要贴切的多,不知道为什么要用上下文这个意思,你知道的话评论告诉我啊)。DC相信你经常用到。不知道?不知道就对了,但你确实经常用它。几乎涉及到绘图的(如PictureBox、Form)都有自己的DC。如果你用过VB6.0,hDC总见过吧?hDC就是DC的Handle。虽然经常用,但你未必知道它是个什么东西吧,你要是都知道,那我还写这篇文章干什么。

 

MSDN的说法:

      Adevice context is a structure that defines a set of graphic objects and theirassociated attributes, as well as the graphic modes that affect output. Thegraphic objects include a pen for line drawing, a brush for painting andfilling, a bitmap for copying or scrolling parts of the screen, a palette fordefining the set of available colors, a region for clipping and otheroperations, and a path for painting and drawing operations. 

 

中文翻译:

    DC是一种定义绘图对象集合及其相关属性的结构,它也定义了影响输出结果的绘图模式。其中,绘图对象包含一个用于画线的pen(笔),一个用于填充的brush(刷子),一个用于复制或者在屏幕上滚动的bitmap(位图),一个定义了可用颜色集合的palette(调色板),一个用于clip(剪辑)及其他操作的region(区域),还有一个用于绘制或填充的path(路径)。

 

      没看懂吧?看懂了,我还写这文章干什么。下面来解释下。

      你现在告诉计算机要在屏幕上画一条线,然后计算机就会在调用相关的函数(GDI、GDI+等)在DC上进行绘制,然后将DC的图像呈现到显示设备上。

      通过上面这段介绍,那它与设备的关系肯定也很密切了吧?确实如此,不同的设备是由不同的DC来进行操作的,同一DC不能操作不同类型的设备。假如现在有一个能操作显示器的DC,我们让这个DC来操作打印机是不行的。要想操作打印机,我们还必须再创建一个能直接操作打印机的DC才行。因为显示器和打印机是不同的设备。、=我们可以看出DC与显示设备的关系非常密切,DC可以把图像呈现到显示设备上。但是硬件设备是不同的,不同的设备只能呈现不同格式的图像,这就要求我们要有能够存储不同格式图片的DC,以支持不同的设备。

      通过上面的介绍,我们可以看出,DC这个东西还是比较底层的。什么?DC能干什么?DC这个东西是很有用的,用DC能设计出很不错的UI(用户界面)的,比如透明窗体等等。

 

      我也是才弄懂这个DC,如果有不对的地方,请留言指出。一方面,能帮助我改正;另一方面,我也好及早修改文章,以免误导大家。

 

      参考:vIstaswx的VB6GDI+ 入门教程[16]LayeredWindow(3) 透明通道(1)

      在此感谢vIstaswx的耐心讲解。                             

你可能感兴趣的:(WHAT IS:设备上下文(DC,Device Context))