显示模态窗口1秒钟

时间:2018-10-18 10:03:44

标签: c++ winapi showmodaldialog c++builder-10.2-tokyo

我有一个mainForm和dialogForm。我想显示模式对话框1秒钟,它应该以编程方式关闭。我尝试了这段代码:

//onButtonClick()
{
dialogForm->ShowModal();
Sleep(1000);
dialogForm->ModalResult =  mrOk;
dialogForm->Close();
}

我也尝试了没有Sleep(1000);的情况,但是它只是没有关闭表格。如何正确关闭此表格?

1 个答案:

答案 0 :(得分:3)

ShowModal()在关闭模式形式时返回。那是关于形式是形式的形式的关键点之一。因此,只有在关闭表单后,程序才会调用Sleep()

相反,您需要向表单添加间隔为1000ms的计时器。显示表单时启动计时器。计时器触发后,关闭表单。

请注意,永远不要从UI线程调用Sleep(),因为这会停止UI线程处理消息,从而使程序无响应。