Я разрабатываю приложение с использованием Win32, которое должно закрываться при закрытии последнего окна. Это поведение по умолчанию для таких приложений, как File Explorer, Chromium и т. д. Мое приложение похоже на эти примеры в том смысле, что не существует одного «главного» окна, которое должно было бы закрыть приложение при закрытии — все окна важны.
Из руководств я знаю, что могу вызвать PostQuitMessage(0)
под WM_DESTROY
, но это закроет приложение, когда любое окно будет уничтожено. Если я не позвоню PostQuitMessage(0)
, приложение останется открытым после уничтожения последнего окна.
Как я могу гарантировать завершение работы приложения при уничтожении всех окон? Должен ли я вручную отслеживать количество созданных и уничтоженных окон, выходя только тогда, когда счетчик равен 0? Наверняка существует более родное решение для Win32.
Понимаю. Спасибо. Не стесняйтесь отправить это как ответ, чтобы я мог принять!
Мое приложение похоже на эти примеры в том смысле, что в нем нет никого. «главное» окно, которое должно закрыть приложение при закрытии — все окна важный.
Да, как вы спросили и ответил @IInspectable, отслеживать нужно. И единого решения не существует. Вы можете реализовать это по своему усмотрению.
«Нужно ли мне вручную отслеживать количество созданных и уничтоженных окон, выходя только тогда, когда счетчик равен 0?» - Да. «Конечно, существует более нативное решение для Win32». - Нет, нет.