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


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

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

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

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

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

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

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz