Показать модальное окно в течение 1 секунды

У меня есть mainForm и dialogForm. Я хочу показать модальную dialogForm в течение 1 секунды, и она должна закрыться программно. Я попробовал этот код:

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

Я пытался также без Sleep(1000);, но это просто не закрывает форму. Как правильно закрыть эту форму?

0

Решение

ShowModal() возвращается, когда модальная форма закрыта. Это один из ключевых моментов в модальности формы. Таким образом, только после закрытия формы вызов вашей программы Sleep(),

Вместо этого вам нужно добавить в форму таймер с интервалом 1000 мс. Запустите таймер, когда форма отображается. Когда таймер срабатывает, закройте форму.

Обратите внимание, что вы никогда не должны звонить Sleep() из потока пользовательского интерфейса, поскольку это останавливает обработку сообщений потоком пользовательского интерфейса и, таким образом, приводит к тому, что программа перестает отвечать на запросы.

3

Другие решения

Других решений пока нет …