2013-08-26 135 views
2

我想在同一時間在MFC中運行兩個窗口 - 當我運行我的應用程序。 在BOOL CrTestTaskApp :: InitInstance中() - 我的應用程序的初始化函數我寫了這個:如何在MFC中同時創建兩個活動對話框?

CrStartDlg sDlg; 
sDlg.DoModal(); 
CrMainDlg dlg; 
m_pMainWnd = &dlg; 
INT_PTR nResponse = dlg.DoModal(); 

if (nResponse == IDOK) 
{ 

} 
else if (nResponse == IDCANCEL) 
{ 

} 

但第二個對話框apears後,才關閉第一。而且,如果我使BtnClick()第一個對話框上的Modal()第二個對話框 - 我不能在它們之間切換..只激活一個...

幫我。

+1

你不能有2個模式對話框在同一時間打開。如果要打開多個對話框,則必須使用無模式對話框。 –

+0

非常感謝Zac! – user2706838

回答

3

您需要無模式對話框,而不是由DoModal方法創建的模態。

使用CDialog::Create創建無模式對話框,並作爲常規窗口響應通過共享消息隊列/泵分派的消息。

+0

謝謝,它幫助了我。你能否告訴我是否可以讓現有的對話模型無法使用? – user2706838

+0

你可能需要一些小的更新,尤其是。圍繞不適用於無模式對話的'EndDialog'調用。大多數消息處理程序應該沒問題。 –

相關問題