我有一个派生自 CStatic 的类,我在该类上绘制线条以显示 MFC C++ 项目中的测量值。问题是我在线的中点附近显示线的距离。我正在使用 ExtTextOut 函数来绘制文本。当我为此使用设备上下文时,我在谷歌上搜索了很多以删除该文本并在其他位置重新绘制,但我无法做到。基本上 CStatic 有一个图像显示,我在上面绘制以进行测量。谁能告诉我如何在不损坏背景图像的情况下删除通过 ExtTextOut 绘制的文本?
提前致谢
最佳答案
我不认为你可以只删除文本,而让文本后面的内容保持不变。你必须重新绘制背景。
如果您不想重绘所有内容,您可以使文本所在的部分无效(使用 InvalidateRect 或 InvalidateRgn),并且只重绘该部分。
另一个选项,适用于线条,但我不知道它是否适用于文本,是用 CDC::SetROP2 设置绘图模式。到 R2_XORPEN(我认为),绘制文本,然后再次绘制以将其删除。不过,通过这种方式,文本看起来会与背景“混合”在一起。
关于c++ - 删除通过 ExtTextOut 函数绘制的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15630881/