c++ - 显示模态窗口 1 秒

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

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

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

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

最佳答案

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

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

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

关于c++ - 显示模态窗口 1 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52871614/

相关文章:

c++ - Sample Grabber 过滤数据中奇怪的垃圾行

javascript - 是否可以使用 ShowModalDialog 在 Popup 中显示菜单栏

javascript - 如何关闭由showModalDialog打开的对话框?

c++ - 任务托盘中没有图标的窗口怎么办?

.net - 显示一个 ContextMenuStrip 但不在任务栏中显示

c++ - 使用 C++ 的命名管道

winapi - CreateFile ("CONIN$"..) 做什么?

c# - 回发后使用 MVC C# 显示弹出确认消息

c++ - 将高分辨率时钟时间转换为整数 (Chrono)

c++ - 您将如何重构这种多态设计以使其在添加新实现时更加灵活?