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で必要なことを行うことを提案しています。しかし、なぜそれが正常に機能しないのですか。
この回避策でさえも機能します。助けてください :(