显示模态 window 1 秒

Show modal window for 1 second

我有一个主窗体和一个对话框窗体。我想显示模态 dialogForm 1 秒,它应该 以编程方式 关闭。我试过这段代码:

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

我也尝试过不使用 Sleep(1000);,但它只是没有关闭表单。如何正确关闭此表单?

ShowModal() returns 当模态窗体关闭时。这是关于表单是模态的关键点之一。因此,只有在关闭表单后,您的程序才会调用 Sleep().

相反,您需要在表单中添加一个间隔为 1000 毫秒的计时器。显示表单时启动计时器。当计时器触发时,关闭表单。

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