2012-12-17 102 views
0

我有一個自定義對話框消息框,當我的主對話框中的edit control有錯誤的數據時彈出。按下ok後繼續MFC對話框

CDlgError dlgError = new CDlgError(this); 
dlgError.Create(CDlgError::IDD, this); 
dlgError.m_staticMessage.SetWindowTextA("Error message!"); 
dlgError.ShowWindow(SW_SHOW); 

//more code 

我想要的代碼的其餘部分我在CDlgError彈出的對話框中,按一個OK button後才執行。我怎樣才能做到這一點?

+1

調用'DoModal'而不是'ShowWindow' – 2012-12-17 14:43:09

回答

3

使用DoModal而不是CreateShowWindow來顯示錯誤對話框。例如

CDlgError dlgError = new CDlgError(this); 
dlgError.m_strMessage = "Error message!"; 
dlgError.DoModal(); 

正如你可以從代碼中看到,你需要在文本傳遞,然後設置你的信息標籤內CDlgError::OnInitDialog因爲控制不會纔去模式進行初始化。

0

您正在創建使用Create一個對話框,顯示modalless對話框(可以在應用程序的其他部分單擊甚至對話框打開)。 您的要求是針對模式對話框,在此對話框關閉之前,您無法單擊應用程序的任何部分。 爲此,請使用DoModal函數代替create。