MFC中 initinstance函数中创建模态对话框 对话框OK结束后不弹出主界面 为什么????怎么让主界面弹出

2024-12-18 12:45:01
推荐回答(1个)
回答1:

哈,小伙子精神不错啊...
是这样的.....
MFC的基于于对话框的应用程序与文档的应用程序用的不是同一个run.
你上面的理解是文档类型的.
到于对话框,请看CTestApp::InitInstance()中的代码,其中有以下几句:
CTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
大致是这样吧.这个DoModal内部有为模态对话框重建一个消息循环,模态对话框用得就是这样消息循环.你可以去百度下大牛们对模态对话框消息循环的分析.
当对话框退出的时候,InitIntance总是会返回false,而这在winmain里的有大致这样的代码:
if(!initInstance())//函数不是这样直接写,但最终是调用这个函数
{
XXXXXXXXXX
goto failture;
}
这个goto语句直接会将CWinApp::Run直接跳过.从而直接结束winmain.

明白?给点分吧,打字不容易啊,兄弟