2011-01-01 10 views
0

SetBkColor()> BitBlt [SRCCOPY]を使用して24BPPカラー画像のモノクロームマスクを作成できません。マスクは完全に黒くなります。私がLoadImage()を代わりに使用してHBITMAPを取得した場合にのみ、全体が機能します。同じ問題を持つGDI + Bitmap :: GetHBITMAPで得られた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 

他の人は:: GetHDCをグラフィックスを使用し、回避策として、このDCで必要なことを示唆しています。しかし、なぜそれがうまくいかないのでしょうか?

この回避策でさえ、助けてください:(

答えて

関連する問題