0

我无法使用 SetBkColor() > BitBlt[SRCCOPY] 为 24BPP 彩色图像创建单色蒙版。面具最终完全变黑。只有当我使用 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 执行所需的解决方法。但是为什么它不能正常工作。

即使这种解决方法也能奏效。请帮忙 :(

4

1 回答 1

0

已解决: 如何为 32 位位图生成单色位掩码

于 2011-01-02T13:30:48.083 回答