1. 在基于对话框的程序中,在主程序之前显示一对话框,,如建立的项目名为Begin...新建立的需要提前显示的对话框资源类为Start。。
则在主程序之前显示、Start对话框的方法为:CBeginApp类中,在其InitInstance()函数中,VS2010自动添加的代码如下
CBeginDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码
Start m_NewDlg; if(m_NewDlg.DoModal() == IDOK) { CBeginDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } }2. 在基于文档的项目中,,如所建项目为“对话框”,且新建立的需要提前显示的对话框资源类为Start。。则要实现 该功能,则在C对话框App类的InitInstance()函数中,VS2010自动添加的代码如下
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(C对话框Doc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(C对话框View));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
Start m_NewDlg; if( m_NewDlg.DoModal() == IDOK) { CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(C对话框Doc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(C对话框View)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); }
确实实现了该功能。。如果有什么错误或改进的地方,,因此各位高手留言交流。。