无法通过GDI + Bitmap :: GetHBITMAP从HBITMAP创建单色位图

时间:2011-01-01 19:42:25

标签: c++ c windows gdi+ monochrome

我无法使用SetBkColor()>为24BPP彩色图像创建单色蒙版的BitBlt [SRCCOPY]。面具最终完全是黑色。只有当我使用LoadImage()来获取HBITMAP时,整个过程才有效。

Bitmap img(L"Ball.bmp");
HBITMAP hBM;
img.GetHBITMAP(Color::White, &hBM);
//hBM = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BALL));
.
.
SelectObject(hDCSrc, hBM);
SetBkColor(RGB(0xFF, 0xFF, oxFF));
BitBlt(hDCMem, 0, 0, img.GetWidth(), img.GetHeight(), hDCSrc, 0, 0, SRCCOPY);

//hDCMem is copletely black; but OK when using LoadImage() instead

其他有相同问题的人建议使用Graphics :: GetHDC并使用此DC作为解决方法。但为什么它不能正常工作。

即使是这种解决方法也是如此。请帮忙:(

1 个答案:

答案 0 :(得分:0)