MFC 注销主对话框, 返回登陆框的功能实现。
init的时候 ,插入登陆对话框
CEPLApp *m_dlgApp;
BOOL CEPLApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
m_dlgApp=this;
...
CLogin loginDlg;
if(loginDlg.DoModal() != IDOK)
{
//theApp.ExitInstance();
return FALSE;
}
loginDlg.DestroyWindow();
AfxEnableControlContainer();
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
....
return FALSE;
}
extern CEPLApp *m_dlgApp;
...
void CEPLDlg::OnDestroy()
{
CDialog::OnDestroy();
m_dlgApp->InitInstance();
// TODO: 在此处添加消息处理程序代码
}
INT_PTR nResponse;
while(TRUE)
{
CLogin LoginDlg;//登录对话框
nResponse = LoginDlg.DoModal();
if(IDOK == nResult)
{
CEPLDlg EPLDlg;//界面对话框
EPLDlg.DoModal();
}
else
{
break;
}
}
return FALSE;
CWinApp::InitInstance();
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls();// Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic();// Call this when linking to MFC statically
#endif
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
INT_PTR nResponse;
while(TRUE)
{
CLogin LoginDlg;//登录对话框
nResponse = LoginDlg.DoModal();
if(IDOK == nResponse)
{
CEPLDlg EPLDlg;//界面对话框
EPLDlg.DoModal();
}
else
{
break;
}
}
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}