什么是DC呢?

在GDI中,DC(Device Context)是一个非常重要的概念。

有的书中,将DC翻译为设备描述表,也有的书中翻译为设备上下文。

但是这些翻译,无法在我们的头脑里有强烈的冲击,无法生动的诠释。

那么到底什么是DC呢?

用现实中的例子来理解,我想大家会更容易记忆与接受。

拿画画来说。

如果你要画画,那么你需要什么呢?

你得先准备好画布,画笔,颜料。。等等

画画的环境搭好了,那么就可以画画了。

这个画画的环境,就是DC。

在图形环境下,一切都是画出来的,所以你要准备好一个DC,才能在计算机屏幕上画画。---另外写字也是画画的一种。

在计算机的画画的环境中,有哪些对象呢?

画布:GDI对象之一:区域

画笔:GDI对象之一:画笔

颜料盒:GDI对象之一:调色板

如果要在画布上写字的话,写什么样的字体呢?方正字体?宋体字体?  --字体也是GDI对象之一。

有的画笔比较粗,专门用来刷大面积背景色的,这就是刷子。--GDI对象之一:刷子。

如果你不想自己画,只想把别人画好的画,贴到你的画布上,这也是可以的。--GDI对象之一:位图。

所以,这里有6种对象可以用于DC。

现在开始画画了,你拿起了一支笔。---这个操作在Windows环境里面叫选择了一个画笔对象,使用SelectObject函数,当然,如果你没带画笔也没关系,Windows为你准备了几只画笔,你可以这样申请系统提供的缺省画笔:hPen = GetStockObject(WHITE_PEN);

如果你画着画着,觉得手中的笔用着不爽,可以换一只啊,没关系的。——依旧是SelectObject()换笔。

当然,如果你走出了画室,别完了把你的画笔清除掉,要不画室里全是笔啊,刷子啊,太乱了。——DeleteObject()

转自:http://www.cnblogs.com/tibetanmastiff/archive/2010/04/27/1722354.html