CreateCompatibleDC
该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。
原型:
HDC CreateCompatibleDC(HDC hdc);
参数:
hdc:[in]现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。
返回值:
如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。
说明:
内存设备上下文环境是仅在内存中存在的设备上下文环境,当内存设备上下文环境被创建时,它的显示界面是标准的一个单色像素宽和一个单色像素高。在一个应用程序可以使用内存设备上下文环境进行绘图操作之前,它必须选择一个高和宽都正确的位图到设备上下文环境中,这可以通过使用CreateCompatibleBitmap函数指定高、宽和色彩组合以满足函数调用的需要。
当一个内存设备上下文环境创建时,所有的特性都设为缺省值,内存设备上下文环境作为一个普通的设备上下文环境使用,当然也可以设置这些特性为非缺省值,获取它的特性的当前设置,为它选择画笔,刷子和区域。
CreateCompatibleDC函数只适用于支持光栅操作的设备,应用程序可以通过调用GetDeviceCaps函数来确定一个设备是否支持这些操作。
当不再需要内存设备上下文环境时,可调用 DeleteDC 函数删除它。
参考例子:
// hdcExist: Handle to an existing device context
// Create DC compatible with hdcExist.
hdcCanvas = CreateCompatibleDC(hdcExist);
if (hdc == NULL)
return;
// Create compatible HBITMAP
hbCanvas = CreateCompatibleBitmap(hdcSkin, ScreenWidth, ScreenHeight);
// Select HBITMAP into DC
SelectObject(hdcCanvas, hbCanvas);
// Create DC compatible with hdcExist.
hdcCanvas = CreateCompatibleDC(hdcExist);
if (hdc == NULL)
return;
// Create compatible HBITMAP
hbCanvas = CreateCompatibleBitmap(hdcSkin, ScreenWidth, ScreenHeight);
// Select HBITMAP into DC
SelectObject(hdcCanvas, hbCanvas);
参考: