Закрыть или отменить диалог MFC через заданный промежуток времени - PullRequest
3 голосов
/ 11 июня 2009

как автоматически закрывать или закрывать диалоговое окно MFC через 10 секунд.

Ответы [ 2 ]

12 голосов
/ 11 июня 2009

Объявите идентификатор для вашего таймера, то есть в вашем CMyDialog.h где-то:

static const UINT ID_MY_TIMER = 1000;

Создайте таймер в вашей функции OnInitDialog:

SetTimer(ID_MY_TIMER, 10000, NULL); // 10000ms = 10 secs

Добавить обработчик для WM_TIMER (сгенерированная функция будет называться OnTimer):

void CMyDialog::OnTimer(UINT_PTR nIDEvent)
{
    if (nIDEvent == ID_MY_TIMER)
    {
        EndDialog(IDOK);
    }
    ...
}

Замените IDOK на IDCANCEL в зависимости от того, какой результат вы хотите получить от DoModal.

2 голосов
/ 11 июня 2009

Используйте SetTimer с тайм-аутом 10 секунд. На обработчике сообщений таймера публикуется закрытое сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...