消息框中的CMainFrame OnCreate



我有一个旧的MFC应用程序,它的OnCreate函数跨越了200行以上。

CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
PostMessage(LOAD_IMAGES,0,0);
...
ValidatePermissions();
...
}

LOAD_IMAGES是一个用户消息,其处理程序试图加载上次会话未保存的图像。基本上它尝试创建一个新的CDocument…

如果ValidatePermissions函数发现任何权限缺失,则弹出一个模态消息框。

我注意到,如果我有模态消息框弹出,那么当LOAD_IMAGES处理程序触发时,我会崩溃(因为它不能创建CDocument,我认为这是因为CMainFrame尚未创建)。

我该如何处理这种情况?是否有任何文档建议不要在OnCreate中有模态消息框?

尝试将对ValidatePermissions的调用移动到LOAD_IMAGES的消息处理程序。这应该让窗口创建完成,然后再让消息框泵送消息。

相关内容

  • 没有找到相关文章

最新更新