【问题标题】:MFC, Determine the drawText/TextOut is be covered by other windowMFC,确定drawText/TextOut是否被其他窗口覆盖
【发布时间】:2014-06-12 01:14:30
【问题描述】:

我已经开发了一个应用程序,它的用户界面就像一个跟随图片,

Original Picture

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

cover picture

当我关闭控制面板窗口时,

close contrl panel window

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

将被删除,

我如何确定情况,何时删除文本......

【问题讨论】:

    标签: mfc drawtext textout


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。目前,我不需要经常重绘它,所以我使用一个标志来确定重绘时间,drawtext/TextOut 是在 onPaint 中定义的。如果我总是重新粉刷它,窗户会闪烁。
    • 仅在必要时才处理 WM_PAINT。当窗户需要绘画时。它不是连续运行的。所以你不应该看到闪烁。您可以避免使用该标志。当 WM_PAINT 必须排队和处理时,Windows 将自动管理。
    猜你喜欢
    • 2021-11-01
    • 1970-01-01
    • 2016-03-05
    • 2011-12-26
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多