显示阻止消息框

时间:2013-10-11 13:17:25

标签: c++ windows mfc

是否有与CWaitCursor类似的东西显示消息框而不是光标动画?

在我的MFC GUI应用程序中,我想在调用长时间运行的函数之前显示消息框“请等待...”,然后在函数完成后关闭消息框。用户不应该关闭消息框。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用非模态对话框或带有静态控件的简单弹出窗口。 诀窍是使用UpdateWindow / RedrawWindow将其带入视图并强制窗口更新它。

当你的程序是长时间运行并且没有泵入任何消息时,可能会出现问题。这种情况下窗口可能被覆盖并且未被覆盖而没有消息循环它将不再被绘制。

因此可以创建新窗口,将焦点设置为它并禁用主窗口。比较长时间操作开始时可以泵送消息。

更容易将冗长的操作放在第二个线程中,并在主线程中显示带有消息Loop的对话框,等待进程结束。