我的程序使用无模式对话框与用户交互,并且还有一个托盘图标。用户可以使用托盘图标立即退出应用程序。
BOOL OnInitDialog()
{
init data...
}
void OnDestroy()
{
destroy data...
}
void OnSomeButton()
{
CFileDialog dlg;
...
dlg.DoModal(m_hWnd));
access data...
...
}
void OnMenuExit()
{
DestroyWindow();
}
问题是当我弹出一个模态对话框(OnSomeButton
),然后使用托盘图标菜单退出时,主对话框首先被破坏,然后模态对话框返回,试图访问一些无效数据,导致崩溃。
我知道我可以在访问数据之前添加一些检查代码,但是还有其他方法吗?有什么方法可以确保 OnSomeButton() 在窗口销毁之前返回?