Mfc 从任务栏单击应用程序主窗口未显示(将非模态对话框转换为模态)

Mfc 从任务栏单击应用程序主窗口未显示(将非模态对话框转换为模态),mfc,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应用程序。我有一个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应用程序和无模式子对话框。无模式对话框始终仅位于父窗口顶部(根据上述代码)

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


提前感谢。

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

在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;
}

不清楚你在问什么。此代码不会编译:
CDialog pDisplayGlobal=new CDialog(IDD_显示,NULL)但这可能是复制/粘贴错误。如果代码位于
CMyWinApp
或其他位置,则不显示代码的位置。不清楚为什么要创建子对话框。这应该是一个基于对话框的应用程序吗?嗨,Barmak,纠正了错误,我创建了派生类的CDialog对象,而不是CDialog。请查看上面的代码。
CDialog
很好。你没有纠正任何错误,也没有回答我的任何问题。请阅读此可变示例:
CMyWinApp::InitInstance(){CDialog dlg(IDD_X);dlg.DoModal();…}
My MFC应用程序是一个MDI应用程序。我有一个MFC扩展dll,MFC扩展dll将在MFC MDI应用程序顶部启动子对话框。在“我的孩子”对话框关闭之前,我可能无法从任务栏中恢复MFC应用程序,请单击我的第一个线程中的上述步骤。请帮我解决这个问题。
BOOL CMyWinApp::InitInstance()
{
    //...
    frame->ShowWindow(SW_SHOWNORMAL);
    frame->UpdateWindow();
    dll_foo();
    return TRUE;
}