1.25 Разрушение окна

Вообще, прикладная программа должна уничтожать все окна, которые она создает. Она делает это, используя функцию DestroyWindow. Когда окно разрушается, система скрывает его, если оно видимо, а затем удаляет любые внутренние данные, связанные с окном. Это действие лишает законной силы дескриптор окна, который больше не может использоваться прикладной программой.

Прикладная программа уничтожает многие из окон, которые она создает, вскоре после их создания. Например, прикладная программа обычно уничтожает окно блока диалога, как только прикладная программа получит достаточно вводимой информации от пользователя, чтобы продолжить выполнение своей задачи. Прикладная программа, в конечном счете, уничтожает основное окно прикладной программы (при завершении работы).

Перед разрушением окна, прикладная программа должна сохранить или удалить любые данные, связанные с окном, а также она должно освободить любые ресурсы системы, распределенные для окна. Если прикладная программа не освобождает ресурсы, Windows освободит любые ресурсы, не освобожденные прикладной программой.

Разрушение окна не воздействует на класс окна, из которого оно создано. Новые окна могут все еще создаваться, используя этот класс, а любые существующие окна этого класса продолжают функционировать. Разрушение окна также уничтожает порожденные им окна. Функция DestroyWindow посылает сообщение WM_DESTROY сначала окну, а затем его дочерним и порожденным окнам. Таким образом, все порожденные окна разрушаемого окна также разрушаются.

Когда пользователь выбирает команду Закрыть (Close), окно с меню окна принимает сообщение WM_CLOSE. Обрабатывая это сообщение, прикладная программа может запрашивать пользователя о подтверждении этого действия перед разрушением окна. Если пользователь подтверждает, что окно должно быть разрушено, прикладная программа может вызывать функцию DestroyWindow, чтобы уничтожить окно.

Если разрушаемое окно - активное, то и активность, и состояние фокуса перемещаются в другое окно. Окно, которое становится активным - следующее окно, как определено комбинацией клавиш ALT+ESC. Новое активное окно затем определяет, какое окно принимает фокус клавиатуры.


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