初衷:复杂的图像绘制过程中,为了提高效率,有时候需要将不同的图像分别绘制到不同的图层中(类似于PS图层),最后进行拼接。在修改图像之前,有时候我们需要将图层进行备份。
CDC Clone(CDC& dcSrc)
{
CDC dcResult;// 复制后的数据
BITMAP BMP;
CBitmap bmp;
unsigned short width;// 位图宽
unsigned short height;// 位图高
dcSrc.GetBitmap(&BMP);
width = BMP.bmWidth;
height = BMP.bmHeight;
bmp.CreateCompatibleBitmap(&dcSrc, width, height);// 创建与设备兼容的位图环境
dcResult.CreateCompatibleDC(&dcSrc);
dcResult.SelectObject(&bmp);
dcResult.BitBlt(0, 0, width, height, dcSrc, 0, 0, SRCCOPY);// 复制源设备数据
return dcResult;
}