Поделиться через


CWnd::DestroyWindow

Уничтожает окно Windows вложенное к объекту CWnd.

virtual BOOL DestroyWindow( );

Возвращаемое значение

Если при уничтожении окна; в противном случае – значение 0.

Заметки

Функция-член DestroyWindow отправляет соответствующие сообщения в окно, чтобы отключить его, и удалить фокус ввода. Также он уничтожает меню окно выберите сбрасывает очередь приложения удаляет необработанные таймеры удаляет владение буфера обмена и разрывает цепочку Буфер обмена- средства просмотра, если CWnd на самом верху цепочки средства просмотра. Он отправляет сообщения WM_DESTROY и WM_NCDESTROY окна. Он не уничтожает объект CWnd.

Заполнитель для DestroyWindow при выполнении очистки. Поскольку DestroyWindow виртуальную функцию, перечислены в любом CWnd- производном классе в представлении классов. Но даже при переопределении эта функция в CWnd- производный класс, DestroyWindow не обязательно вызвать. Если DestroyWindow не вызываются в коде MFC, необходимо явным образом вызывать в собственном коде, если оно должно вызываться.

Предположим, например, DestroyWindow переопределении в CView- производный класс. Поскольку исходный код 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