Моя программа использует немодальный диалог для взаимодействия с пользователем, а также имеет значок в трее. Пользователь может немедленно выйти из приложения, используя значок на панели задач.
BOOL OnInitDialog()
{
init data...
}
void OnDestroy()
{
destroy data...
}
void OnSomeButton()
{
CFileDialog dlg;
...
dlg.DoModal(m_hWnd));
access data...
...
}
void OnMenuExit()
{
DestroyWindow();
}
Проблема в том, что когда я открываю модальное диалоговое окно (OnSomeButton
), а затем выхожу из меню значков в трее, сначала уничтожается основной диалог, а затем возвращается модальный, пытаясь получить доступ к некоторым неверным данным, что приводит к сбою.
Я знаю, что могу добавить код проверки перед доступом к данным, но есть ли другой способ? Есть ли способ обеспечить возврат OnSomeButton() до уничтожения окна?