Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Пропадает модальность окна


Автор: xTr1m 25.1.2007, 16:32
Здравствуйте, объясню в кратце проблему:
есть обычный диалог (наследованный от CDialog), в нем нет никаких прибамбасов и наворотов. Обычные конторллы, типа CButton CEdit. Диалог создается так
Код

CFormsDlg dlg;
dlg.DoModal();

Далее выполняются действия по созданию отчета. Сразу скажу, что происходит взаимодействие с базой данных (данные запршиваются, обрабабытваются и помещаются в отчет). Время от времени создается в потоке диалог с CProgressBar , отражающий на сколько завершена операция запроса.

Проблема в следующем:
после выполнения создания большого отчета окно перестает быть модальным.  Т.е. появляется возможность нажимать на кнопки и пертаскивать формы приложения, которое находиться на заднем фоне. Более того, это главное окно можно закрыть  и тогда программа падает =)) (ну это понятно, так как закрывается главное окно, породившее модальный диалог, а сам диалог не закрывается)
Код

m_nFlags & WF_MODALLOOP

такой флаг стоит, проверял. Что делать? Может ли быть проблема в многократном создании потоков (ну скажем теряеся какой-нибудь хэндл или что то еще)  Спасибо.


Пробовал ставить флаг DS_SYSMODAL , результат тот же =((

Автор: xTr1m 25.1.2007, 19:36
Проблема решена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)