用CxImage可以很方便的将HBITMAP转为内存或者文件

BYTE *pDstBuffer = NULL;
long nDstSize = 0;

HBITMAP bmp;
CxImage image;
image.CreateFromHBITMAP(bmp);
image.Encode(pDstBuffer, nDstSize, CXIMAGE_FORMAT_BMP); // 转为内存
image.Save("D:\test.bmp", CXIMAGE_FORMAT_BMP); // 保存为文件
::DeleteObject(bmp);

原文地址:https://www.cnblogs.com/hui277/p/3493682.html