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


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

Следующий пример показывает, как запросить подтверждение у пользователя перед разрушением окна. В ответ на WM_CLOSE, пример отображает на экране диалоговое окно, которое содержит кнопки Да (Yes) , OK и Отменить (Cancel). Если пользователь щелкает мышью по кнопке Да, вызывается DestroyWindow; в противном случае, окно не разрушается. Поскольку разрушаемое окно - основное окно, пример вызывает PostQuitMessage в ответ на WM_DESTROY.

Демонстрационный пример

case WM_CLOSE:
// Создаем окно сообщений. Если пользователь щелкает мышью
// по кнопке Да (Yes), основное окна разрушается.
if (MessageBox(hwnd, szConfirm, szAppName,
MB_YESNOCANCEL) == IDYES)
DestroyWindow(hwndMain);
else
return 0;
case WM_DESTROY:
// Вставляем сообщение WM_QUIT, чтобы завершить выход из программы.
PostQuitMessage(0);
return 0;

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

Hosted by uCoz