【发布时间】:2012-03-04 13:40:44
【问题描述】:
在我们的应用程序中,我们有一个 MFC 对话框,可以打开并处理一些需要显示的数据。因此,处理是在 OnPaint() 事件中延迟启动的。加工处理 需要一些时间(大约 20-30 秒),并且完全是算法(没有调用 UI API)。 发生的情况是有时在处理完成后窗口“消失”。我们发现它被带到了父窗口(主框架)后面。
在处理完成后立即调用 SetForegroundWindow(),或在非 UI 线程中执行处理(让 OnPaint() 在合理的时间内完成)已经消除了问题。
这个问题已知吗? OnPaint() 的执行是否有明确的时间限制?
谢谢,
亚历克斯。
【问题讨论】:
-
你应该注释掉处理部分,看看窗口是否仍然消失以缩小范围。