Я на самом деле думаю, что у YeenFei есть хороший момент.
Прошло много времени с тех пор, как я играл с MFC (слава богу), но из памяти таймер может вызываться или не вызываться из потока пользовательского интерфейса в зависимости от того, какой из них вы используете. Если таймер поднимается в главном потоке пользовательского интерфейса, то модальное диалоговое окно, скорее всего, остановит основной поток до его закрытия, после чего он будет вызван следующим таймером. Если таймер поднят в отдельном потоке, то ваш диалог не блокирует основной поток пользовательского интерфейса, как это показано в отдельном потоке.
Это кажется более правдоподобным, так как YeenFei указал, что вы хотите повторно показывать свой диалог каждый раз, когда таймер срабатывает, скрывая его, когда пользователь нажимает на кнопку, чтобы закрыть его. Таким образом, если время увеличивается снова, все, что он делает, это повторно показывает диалог, независимо от того, открыто оно в данный момент или нет.
Здесь есть отличный пост (www.eggheadcafe.com) о таймерах и параллелизме, который может показаться вам интересным и может сделать вещи более понятными, чем то, что мне удалось сделать.