私はWin32で作業しています。ここで、使用する場合:
BitBlt(hdc, 0, 0, 32, 32, hdcMem, 0, 0, SRCAND); // hdc has mask in it
BitBlt(hdc, 0, 0, 32, 32, hdcMem, 0, 0, SRCPAINT);`// hdc has regular image in it
ビットマップ透明度を作成できます。私の問題は、これがターゲットの場所で hdc が既に空であるという事実に依存していることです。私はそうではないので、コードは既存の画像の一部を消去 (黒くします) します。透明なビットマップを、既に描画されている領域にコピーするにはどうすればよいですか?
マスクと画像の両方を 1000, 1000 に送信しようとしました - hdc に何も描画されていない場所で、BitBlt() で SRCCOPY を使用して結果を hdc から hdc にコピーしました。しかし、1000、1000 で何も引き出されなかったか、正しくコピーされませんでした。