我有一个位图,背景需要替换为另一个位图的一部分。一切正常,直到在WindowsXP上启用ClearFont。

为了更好地解释我的问题,让我们将第一个位图标记为bmpDestination,第二个标记为bmpSource

这是bmpSource的样子:

这是bmpDestination的样子:

关闭ClearType时,正确的结果如下所示:

这是启用ClearType时合并它们的不正确结果:

ClearType会更改文本背景颜色的某些部分,因此它们不再是白色(RGB( 255, 255, 255 )),而是白色和文本颜色的组合。

我正在使用BitBlt()和单色位图来创建蒙版,并模拟透明度。我也尝试过使用TransparentBlt(),但是得到了相同的结果。

启用ClearType时,如何合并bmpSourcebmpDestination,以便可以像上面那样创建正确的结果?

谢谢您的帮助。

最好的祝福。

最佳答案

渲染与黑文本的treeview在白色背景。使用带有灰度抗锯齿的字体。不要使用ClearType抗锯齿。我确信您可以使用fdwQualityCreateFont参数之一来实现此目的,但是我不会发誓。

每个像素在白色和黑色之间将具有灰色阴影。您可以将其解释为透明性。白色完全透明;黑色是完全不透明的。使用此信息来创建具有透明度的位图。在多色背景上渲染此透明位图。

10-07 19:22
查看更多