Шаг 77 - CWnd::DestroyWindow

virtual BOOL DestroyWindow( );

Возвращаемое значение
Отлично от нуля, если окно разрушено, иначе 0.

Замечания
Уничтожает окно Windows, присоединенное к объекту CWnd. Метод DestroyWindow посылает соответствующие сообщения окну, чтобы дезактивировать его и удалять с него фокус ввода. Она также уничтожает меню окна, очищает очередь приложений, уничтожает ожидающие обработки таймеры, удаляет монопольное использование буфера обмена, и разрывает связь буфера обмена с классом представления . Она посылает WM_DESTROY и WM_NCDESTROY сообщения к окну но не уничтожает объект CWnd. DestroyWindow - место для выполнения очистки окна . Потому что DestroyWindow - виртуальная функция, она показывает в любом классе унаследованном от CWnd в ClassWizard. Но даже при том, что Вы перегружаете эту функцию в вашем классе CWnd, DestroyWindow не обязательно вызывается. Если DestroyWindow не вызван MFC кодом, то Вы должны явно вызвать ее в вашем собственном коде, если Вы хотите, чтобы она вызвалась.

Предположим, например, Вы перегрузили DestroyWindow в классе унаследованном от CView. Так как MFC исходный код не вызывает DestroyWindow в любом из классов унаследованных от CFrameWnd, Ваш унаследованный DestroyWindow не будет вызываться, если Вы не вызываете его явно.

Если окно - родитель любых окон, эти дочерние окна автоматически разрушены, когда родительское окно разрушено. Метод DestroyWindow уничтожает сначала дочерние окна и затем основное окно. Метод DestroyWindow также уничтожает немодальные диалоговые окна, созданные CDialog::Create.

Если разрушается дочернее CWnd окно и не имеет WS_EX_NOPARENTNOTIFY набора стилей, то WM_PARENTNOTIFY сообщение послано родителю.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.