我的程序使用无模式对话框与用户交互,并且还有一个托盘图标。 用户可以使用托盘图标立即退出应用程序。
BOOL OnInitDialog()
{
init data...
}
void OnDestroy()
{
destroy data...
}
void OnSomeButton()
{
CFileDialog dlg;
...
dlg.DoModal(m_hWnd));
access data...
...
}
void OnMenuExit()
{
DestroyWindow();
}
问题是,当我弹出一个模态对话框(OnSomeButton
),然后退出使用托盘图标菜单时,主对话框首先被销毁,然后模态对话框返回,尝试访问一些无效数据,导致崩溃。
我知道我可以在访问数据之前添加一些检查代码,但是还有其他方法吗? 有没有办法确保 OnSomeButton() 在窗口销毁之前返回?
最佳答案
您需要添加自己的应用程序级别代码。这个问题没有系统支持,主要是因为有太多的特殊性,以至于没有通用的方法是可能的。
关于c++ - 主对话框在命令消息处理程序返回之前销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11927622/