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


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