MFC,确定drawText/TextOut是否被其他窗口覆盖

MFC,确定drawText/TextOut是否被其他窗口覆盖,mfc,drawtext,textout,Mfc,Drawtext,Textout,我开发了一个应用程序,它的用户界面就像下图一样 现在我打开控制面板窗口来覆盖应用程序窗口,如下图所示 当我关闭控制面板窗口时 使用DrawText/TextOut函数绘制的文本 将被删除 当文本被擦除时,我如何确定情况…这意味着您的DrawText和其他绘画功能被写入错误的位置。您必须在OnPaint或OnEraseBkgnd中执行此操作,以便始终绘制它们(当其他窗口重叠时,调整大小时等) 此外,必须确保正确创建(CreateDC)&释放每个对象的设备上下文(ReleaseDC) 谢谢你的

我开发了一个应用程序,它的用户界面就像下图一样

现在我打开控制面板窗口来覆盖应用程序窗口,如下图所示

当我关闭控制面板窗口时

使用DrawText/TextOut函数绘制的文本

将被删除


当文本被擦除时,我如何确定情况…

这意味着您的DrawText和其他绘画功能被写入错误的位置。您必须在OnPaint或OnEraseBkgnd中执行此操作,以便始终绘制它们(当其他窗口重叠时,调整大小时等)


此外,必须确保正确创建(CreateDC)&释放每个对象的设备上下文(ReleaseDC)

谢谢你的回复。现在,我不需要频繁地重新绘制它,所以我使用一个标志来确定重新绘制时间,drawtext/TextOut是在onPaint中定义的。如果我总是重新油漆,窗户会闪烁。WM_油漆只在必要时处理。当窗户需要油漆时。它不是连续运行的。所以你不应该看到闪光灯。您可以避免使用该标志。当WM_PAINT必须排队和处理时,Windows将自动管理。