我可以像这样将hbitmap加载到hdc中:
Gdiplus::Color Color{ 255, 255, 255 };
hBitmap = NULL;
Gdiplus::Bitmap* bitmap = Gdiplus::Bitmap::FromFile(L"home.png", false);
if (bitmap)
{
bitmap->GetHBITMAP(Color, &hBitmap);
delete bitmap;
}
BITMAP bm;
GetObject(hBitmap, sizeof(bm), &bm);
HDC hDCMem = CreateCompatibleDC(NULL);
HBITMAP hBitmapOld = (HBITMAP)SelectObject(hDCMem, hBitmap);我如何进行反向操作,返回加载到特定hdc中的位图
我首先需要检索hbitmap,然后从它检索bitmap?多么?
发布于 2022-01-26 17:13:43
您可以使用GetCurrentObject()访问当前选择到HDC中的HBITMAP (和HPALETTE)。
或者,您可以创建一个新的维度和颜色深度的HBITMAP,将其放入一个新的内存HDC中,然后将源HDC放入其中。
无论哪种方式,一旦您有了一个HBITMAP,就可以使用Bitmap(HBITMAP, HPALETTE)构造函数或Bitmap::FromHBITMAP()方法从它创建一个新的Bitmap(HBITMAP, HPALETTE) Bitmap。
https://stackoverflow.com/questions/70866834
复制相似问题