2014-01-08 86 views
0

我正在爲我的MFC SDI應用程序使用VS2010MainFrameMainFrameOnCreate(LPCREATESTRUCT lpCreateStruct)功能我打開一個對話框,並在IDCANCLE從對話框重播我想關閉我的應用程序。 我正在使用onCreate函數中的相同代碼。如何在MFC SDI應用程序中禁用消息框「無法創建空文檔」消息框

CTermsConditionDlg objTNCDlg; 
if(!objTNCDlg.DoModal() == IDCANCLE){ 
return -1; 
} 

現在我的問題是在返回語句後應用程序顯示消息框如圖所示。 Message on close

我想禁用此消息框並關閉我的應用程序。 任何人都可以幫助我如何做到這一點。 預先感謝您。

回答

0

爲什麼你會把這個對話框放到你的初始化中? 問題是SDI框架在一些初始的東西上繼續傳遞,這些東西總是會運行。在這種情況下,總是希望可以創建大型機。請參閱CSingleDocTemplate :: OpenDocumentFile中的代碼

在調用LoadFrame或ProcessShellCommand之前,只需將此代碼放入InitInistance即可。在這種情況下,您可以輕鬆終止而不會造成問題。

另一個想法是允許創建窗口,但只需使用PostMessage(WM_CLOSE);在這種情況下,初始化完成後,所有內容都會創建並且應用程序再次終止。

+0

很抱歉,作爲您的第一個建議,代碼已經存在於我的應用程序文件中。和關於PostMessage()我沒有得到任何想法在哪裏把這個代碼。 –

+0

不可以。您的代碼位於OnCreate處理程序中。這是錯誤的。將其僅放置在InitInstance處理程序中。或者使用PostMessage並在OnCreate中返回成功。 – xMRi

+0

是的你是對的。感謝您的支持 –