Как сделать, чтобы модальное окно закрылось по условию?

  • Автор темы DrMcSheen
  • Дата начала
D

DrMcSheen

#1
Предполагается модальное диалоговое окно ProgressSave с прогресс баром и кнопкой ОК.
Надо чтобы по завершении прогресса окно само закрылось и передало управление основной программе. Прогресс ещё не создавал, это потом. Главное - отрепетировать закрывание окна.
В качестве эксперимента использую цикл for.
Такой код вызывает ошибку. вот эту: http://www.sharemania.ru/0200321
(окно уже открыто, код из него. Пробовал всё, что закомментировано)

Код:
CProgressSave::CProgressSave(CWnd* pParent /*=NULL*/) 
: CDialog(CProgressSave::IDD, pParent) 
{ 
int i; 
for (i=0;i<10000000;i++); 
OnOK(); 
//CWnd::CloseWindow(); 
//ExitProcess; 
//Exit; 
//::exit; 
//EndDialog(IDOK); 
}
Как поступить?
 

grigsoft

Well-known member
15.11.2005
735
0
#2
Посмотреть на codeproject реализации прогрессов. В конструкторе класса окна самого окна еще нет, так что и закрывать нечего. И прежде чем "отрепетировать закрывание окна", стоит спланировать кто и где будет делать долгую операцию.