Разрушение окна
Вы можете использовать функцию DestroyWindow, чтобы уничтожить окно. Как правило, прикладная программа перед разрушением окна отправляет сообщение WM_CLOSE, давая окну возможность запросить у пользователя подтверждение перед разрушением его. Окно, которое включает в себя меню окна, автоматически принимает сообщение WM_CLOSE, когда пользователь выбирает команду Закрыть (Close) из меню окна. Если пользователь подтверждает, что окно должно быть разрушено, прикладная программа вызывает DestroyWindow. Система отправляет окну сообщение WM_DESTROY после удаления его с экрана. В ответ на WM_DESTROY, окно сохраняет свои данные и освобождает любые ресурсы, которые выделила ему система. Основное окно завершает свою обработку WM_DESTROY, вызывая функцию PostQuitMessage, чтобы выйти из прикладной программы.
Следующий пример показывает, как запросить подтверждение у пользователя перед разрушением окна. В ответ на WM_CLOSE, пример отображает на экране диалоговое окно, которое содержит кнопки Да (Yes) , OK и Отменить (Cancel). Если пользователь щелкает мышью по кнопке Да, вызывается DestroyWindow; в противном случае, окно не разрушается. Поскольку разрушаемое окно - основное окно, пример вызывает PostQuitMessage в ответ на WM_DESTROY.
Демонстрационный пример
caseWM_CLOSE: // Создаем окно сообщений. Если пользователь щелкает мышью // по кнопке Да (Yes), основное окна разрушается. if(MessageBox(hwnd, szConfirm, szAppName, MB_YESNOCANCEL) == IDYES) DestroyWindow(hwndMain); 0;elsereturn caseWM_DESTROY: // Вставляем сообщение WM_QUIT, чтобы завершить выход из программы. (0);PostQuitMessage return0; |