2015-06-01 1 views
0

Приложение MFC - это приложение MDI. и у меня есть DLL MFC Extension, dll MFC Extension запустит дочерний диалог поверх приложения MFC MDI. как указано нижеНажмите «Приложение MainWindow» на панели задач не отображается (диалоговое окно «Converted Modeless to Modal»)

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 

Это проблема, любезно кто-нибудь дать мне фрагмент кода в качестве решения.

Заранее спасибо.

+0

Это не ясно, что вы просите. Этот код не будет компилироваться: 'CDialog pDisplayGlobal = новый CDialog (IDD_DISPLAY, NULL);' но это, вероятно, ошибка копирования/вставки. Вы не показываете местоположение кода, если оно находится в 'CMyWinApp' или где-то еще. Непонятно, почему вы хотите создать дочерний диалог. Это должно быть диалоговое приложение? –

+0

Привет, Бармак, исправил ошибку, я создал объект CDialog производного класса, а не CDialog. См. Код выше. – rshaik786

+0

'CDialog' был в порядке. Вы не исправили ошибок и не ответили ни на один из моих вопросов. Пожалуйста, прочтите этот http://stackoverflow.com/help/mcve пример Variafiable: 'CMyWinApp :: InitInstance() {CDialog dlg (IDD_X); dlg.DoModal(); ...} ' –

ответ

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; 
} 
Смежные вопросы