CWnd::DestroyWindow
終結視窗視窗附加至 CWnd 物件。
virtual BOOL DestroyWindow( );
傳回值
如果不是零,終結視窗;則為 0。
備註
DestroyWindow 成員函式將適當的資訊加入至視窗中停用此和移除輸入焦點。 如果 CWnd 在檢視器鏈結的頂端,它會毀棄視窗功能表,清除應用程式佇列,終結未完成的計時器,也會移除剪貼簿擁有權,並中斷剪貼簿檢視器鏈結。 傳送 WM_DESTROY 和 WM_NCDESTROY 資訊加入至視窗。 它不會終結 CWnd 物件。
DestroyWindow 所執行的清除一個預留位置。 由於 DestroyWindow 為虛擬函式,在所有 CWnd衍生類別顯示 [類別檢視] 中。 但是,即使您覆寫您的 CWnd這個函式的衍生類別, DestroyWindow 不一定會呼叫。 如果 DestroyWindow 在 MFC 程式碼未呼叫,則必須明確呼叫它在自己的程式碼,讓它呼叫。
假設,例如,您可以覆寫 CView的 DestroyWindow 衍生類別。 因為 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