我正在使用 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 处没有提取任何内容,要么没有正确复制回来。