共用方式為


CWnd::DestroyWindow

終結視窗視窗附加至 CWnd 物件。

virtual BOOL DestroyWindow( );

傳回值

如果不是零,終結視窗;則為 0。

備註

DestroyWindow 成員函式將適當的資訊加入至視窗中停用此和移除輸入焦點。 如果 CWnd 在檢視器鏈結的頂端,它會毀棄視窗功能表,清除應用程式佇列,終結未完成的計時器,也會移除剪貼簿擁有權,並中斷剪貼簿檢視器鏈結。 傳送 WM_DESTROYWM_NCDESTROY 資訊加入至視窗。 它不會終結 CWnd 物件。

DestroyWindow 所執行的清除一個預留位置。 由於 DestroyWindow 為虛擬函式,在所有 CWnd衍生類別顯示 [類別檢視] 中。 但是,即使您覆寫您的 CWnd這個函式的衍生類別, DestroyWindow 不一定會呼叫。 如果 DestroyWindow 在 MFC 程式碼未呼叫,則必須明確呼叫它在自己的程式碼,讓它呼叫。

假設,例如,您可以覆寫 CViewDestroyWindow 衍生類別。 因為 MFC 原始程式碼不會在的 DestroyWindow 其任何 CFrameWnd衍生類別,您的覆寫 DestroyWindow 不會呼叫,除非您明確呼叫它。

如果視窗是任何視窗父代,自動終結這些子視窗終結時,父視窗。 DestroyWindow 成員函式先再終結子視窗的視窗。

DestroyWindow 成員函式也會終結 CDialog::Create建立的非強制回應對話方塊。

如果已終結的 CWnd 是子視窗,並且沒有 WS_EX_NOPARENTNOTIFY 樣式設定,那麼 WM_PARENTNOTIFY 資訊傳送至父。

範例

// CModeless is a CDialog class representing a modeless dialog
// Destruction of the modeless dialog involves calling DestroyWindow in 
// OnOK() & OnCancel() handlers
void CModeless::OnOK() 
{ 
   if (!UpdateData(TRUE)) 
   {
      TRACE(_T("UpdateData failed during dialog termination\n"));
      // The UpdateData routine will set focus to correct item
      return;
   }
   DestroyWindow();
}

void CModeless::OnCancel()
{
   DestroyWindow();
}

需求

Header: afxwin.h

請參閱

參考

CWnd 類別

階層架構圖

CWnd::OnDestroy

CWnd::Detach

DestroyWindow