Показать модальное окно в течение 1 секунды - PullRequest
0 голосов
/ 18 октября 2018

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

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

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

1 Ответ

0 голосов
/ 18 октября 2018

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

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

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

...