单击任务栏上的应用程序MainWindow未显示(将无模式对话框转换为模态)

时间:2015-06-01 18:05:17

标签: mfc

我的MFC应用程序是一个MDI应用程序。我有一个MFC扩展DLL,MFC扩展DLL将在MFC MDI应用程序之上启动子对话框。如下所示

CMyDialog  pDisplayGlobal = new CMyDialog(IDD_DISPLAY, NULL);    
pDisplayGlobal->Create(IDD_DISPLAY, AfxGetApp()->m_pMainWnd);
pDisplayGlobal->ShowWindow(SW_NORMAL);

注意:如果我在上面的代码中做错了,请告诉我。

问题: 我也启动了我的MFC mdi应用程序和子无模式对话框。无模式对话框始终位于父窗口之上(根据上面的代码)

Step1) I have opened other four different applications (Which means my MFC application is behind  these four applications)
Step2) I clicked on my MFC application from the Taskbar it’s not showing the main application window. which means it didnt come in front its still in step1 stage only
Step3) To see My MFC application I have to minimize all the four applications

这就是问题所在,请有人给我一些代码片段作为解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

要从其他程序运行对话框,您可以执行以下操作

DLL中的

CDialog *g_dlg;
void dll_foo()
{
    g_dlg = new CDialog;
    g_dlg->Create(IDD_DIALOG1);
    g_dlg->ShowWindow(SW_SHOWNORMAL);
}
主应用程序中的

BOOL CMyWinApp::InitInstance()
{
    //...
    frame->ShowWindow(SW_SHOWNORMAL);
    frame->UpdateWindow();
    dll_foo();
    return TRUE;
}