我有一个旧的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的消息处理程序。这应该让窗口创建完成,然后再让消息框泵送消息。