内存设备环境

通过使用一个特别为位图操作的设备环境,可以使得应用程序将输出操作在内存中而不是将其发送到实际的设备中。内存设备环境使得系统将一部分内存当作虚拟设备。它就是一个在内存中的位数组,使得应用程序可以使用它为在一个标准的绘图表面创建位图临时存储颜色数据。由于位图是和设备兼容的,因此内存设备环境在某些时候也就当作兼容设备环境。 内存设备环境作为一个特殊的环境存储位图图像。应用程序可以调用 CreateCompatibleDC 创建一个内存设备环境。 内存设备环境中初始的位图只是一个简单的占位符。它的尺寸为1*1像素。在应用程序进行绘制之前,必须通过调用 SelectObject 选择一个恰当宽度和高度的位图到该内存环境中。要创建一个恰当尺寸的位图,可以使用 CreateBitmap , CreateBitmapIndirect , or CreateCompatibleBitmap 三个函数。当位图被选进内存设备环境后,系统用一个足够大的数组取代单位数组来存储指定的矩形像素的颜色信息。 当应用程序传递一个由 CreateCompatibleDC 返回的句柄到绘制函数时,被要求的输出并不会在设备的绘制表面显示。相反,系统会存储线段,曲线,文字或者区域的颜色信息到位数组中。应用程序可以复制存储在内存中的图像到绘制表面通过调用 BitBlt 函数,并将内存设备环境作为源设备环境,窗口或者屏幕设备环境作为目标设备环境。