CreateCompatibleDC
说明:
- The CreateCompatibleDC function creates a memory device context(DC) compatible with thespecified device.
- “设备上下文”、“设备环境”是The Device Context的翻译。
- 设备上下文是一种包含有关某个设备(如显示器或打印机)的绘制属性信息的 Windows 数据结构。所有绘制调用都通过设备上下文对象进行,这些对象封装了用于绘制线条、形状和文本的 Windows API。
设备上下文是设备无关的,所以它既可以用于绘制屏幕,也可以用于绘制打印机甚至元文件。设备上下文在内存中创建,而内存经常受到扰动,所以它的地址是不固定的。因此,一个设备上下文句柄不是直接指向设备上下文对象,而是指向另外一个跟踪设备上下文地址的指针。 - Windows不允许程序员直接访问硬件,它对屏幕的操作是通过环境设备,也就是DC来完成的。屏幕上的每一个窗口都对应一个DC,可以把DC想象成一个视频缓冲区,对这这个缓冲区的操作,会表现在这个缓冲区对应的屏幕窗口上。 在窗口的DC之外,可以建立自己的DC,就是说它不对应窗口,这个方法就是CreateCompatibleDC,这个DC就是一个内存缓冲区,通过这个DC你可以把和它兼容的窗口DC保存到这个DC中,就是说你可以通过它在不同的DC之间拷贝数据。例如:你先在这个DC中建立好数据,然后在拷贝到窗口的DC就是完成了这个窗口的刷新。
- CreateCompatibleDC创建一个与指定设备兼容的内存设备上下文环境(memory DC)。
函数声明::
HDC CreateCompatibleDC(
HDC hdc
);
参数:
hdc: 现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。
返回值:
- 成功,返回内存设备上下文环境的句柄;
- 失败,返回Null;
备注:
- memory DC创建之初,只有1*1像素的尺寸。用memory DC进行描画操作之前,需要CreateCompatibleBitmap创建一个与屏幕显示兼容的位图,再用SelectObject将位图选入到内存显示设备中。
- 一个memory DC被创建时,所有属性都被设置为正常的默认值。memory DC可以正常使用,也可以设置属性,Get当前属性设置、选择pens, brushes,and regions…
- 只适用于支持光栅操作的设备,应用程序可以通过调用GetDeviceCaps函数来确定一个设备是否支持这些操作。
- 不需要memory DC时,调用DeleteDc删除它。
CreateCompatibleBitmap
说明:
该函数创建与指定的设备环境相关的设备兼容的位图。
函数声明:
HBITMAP CreateCompatibleBitmap(
HDC hdc,
int cx,