在c ++ win32中使用透明背景绘制/打印文本

时间:2012-05-13 13:03:53

标签: c++ winapi text

我正在尝试绘制/打印文本,但我需要一个透明的背景。我一直在尝试这个:

    TextOut(hDC, 50, 50, "MY TEXT", lstrlen("MY TEXT"));

问题是这会产生白色背景。 我也试过这个:

    ExtTextOut(hDC, 50, 50, ETO_OPAQUE, TA_LEFT,  "MY TEXT", lstrlen("MY TEXT"), NULL);

ETO_OPAQUE - 将文本区域的背景颜色设置为程序的当前背景颜色。但是如果我的背景是动态的并且发生了变化,那就不行了,这就是我需要透明背景的原因。

有关这两项功能http://msdn.microsoft.com/en-us/library/dd144821(v=vs.85)

的更多信息

我知道我可以将文本插入位图并使用“TransparentBlt”来实现“相同”的效果,但是......任何知道另一个功能来绘制/打印带有透明背景的文本,或任何关于我如何的想法可以解决这个所谓的问题吗?

谢谢... =)

1 个答案:

答案 0 :(得分:8)

SetBkMode( hdc, TRANSPARENT );