2011-07-06 33 views
3

我正在MFC應用程序中的對話框中工作,我 - 我承認 - 對於MFC來說很新。何處調用MFC對話框的DestroyWindow()?

比方說,我有類A(從CDialog派生)使用類B(也來自CDialog得出)。因此,A::OnInitDialog()調用Bcreate(...)方法。

我現在看到了B類的析構函數中包含

if (GetSafeHwnd()) 
{ 
    DestroyWindow(); 
} 

這樣行嗎?根據我的理解,最好在A::OnDestroy()中撥打BDestroyWindow()方法。是對的嗎?

感謝您的幫助!
Oliver

回答

3

你可能已經注意到,你已經注意到MFC的一件事是它是一個包裝API,而不是嚴格的面向對象。而要使用RAII(資源獲取初始化),MFC不會在其構造函數中創建窗口。它通過Create()方法正確地指出了這一點。

因此,鑑於MFC的工作方式,對我來說更有意義,在銷燬AA::OnDestroy)時銷燬B,所以我認爲你會走向正確的道路。