在我们的应用程序中,我们有一个 MFC 对话框,可以打开并处理一些需要显示的数据。因此,处理是在 OnPaint() 事件中延迟启动的。处理需要一些时间(大约 20-30 秒),并且完全是算法(不调用 UI API)。发生的情况是,有时在处理完成后窗口“消失”。我们发现它被带到了父窗口(主框架)后面。
在处理完成后立即调用 SetForegroundWindow() 或在非 UI 线程中执行处理(让 OnPaint() 在合理的时间内完成)已经消除了问题。
这个问题已知吗?OnPaint() 执行是否有任何定义的时间限制?
谢谢,
亚历克斯。