擦除通过ExtTextOut函数绘制的文本

时间:2013-03-26 06:40:17

标签: c++ visual-c++ mfc

我有一个派生自CStatic的类,我在绘画线上显示MFC C ++项目中的测量值。问题是我在线的中间显示了线的距离。我使用ExtTextOut函数来绘制文本。当我使用设备上下文时,我用Google搜索了很多文本并在其他位置重绘,但我无法做到。基本上CStatic有一个图像显示,我可以在其上绘图进行测量。请问有人能告诉我如何擦除通过ExtTextOut绘制的文本而不损害背景图像吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

我不认为你可以删除文本,留下它背后隐藏的内容。你必须重新绘制背景。

如果您不想重绘所有内容,可以使文本所在的部分无效(使用InvalidateRect或InvalidateRgn),只会重新绘制。

另一个选项,适用于行,但我不知道它是否适用于文本,是将绘图模式设置为CDC::SetROP2到R2_XORPEN(我认为),绘制文本,然后再绘制它擦除它。通过这种方式,文本看起来会与背景“混合”。