dilsdgr8 Ответов: 1

Как автоматически выйти из приложения, расположенного на DVD-диске, когда DVD-диск извлечен


Iam разрабатывает диалоговое приложение MFC, которое хранится на DVD-диске. Предположим, пользователь запускает это приложение с DVD-диска и извлекает DVD-диск во время работы приложения. Можно ли закрыть приложение по умолчанию.

Что я уже пробовал:

Я обработал уведомление WM_DEVICECHANGE и вызвал PostQuitMessage (). Приложение завершает работу, но taskmanager показывает это приложение. После этого процесс также не может быть завершен с помощью taskmanager. Это связано с пейджингом или что-то в этом роде?

1 Ответов

Рейтинг:
1

Jochen Arndt

Пока PostQuitMessage может быть использован для простых приложений это довольно жесткий метод, который не будет работать во многих обстоятельствах, как с многопоточными приложениями.

Распространенным методом является закрытие главного окна приложения (например, путем размещения WM_CLOSE сообщение в Главное окно). Это будет гарантировать, что все дочерние окна закрыты надлежащим образом, освобождаются ресурсы и переопределения закрыть и уничтожить обработчики вызываются.

Когда окно, наконец, разрушается, в рамках МФК будут называть AfxPostQuitMessage в CWnd::OnNcDestroy В этом и заключается цель [Afx]PostQuitMessage функция: выход из цикла сообщений после выполнения всей необходимой очистки. При вызове его в другом месте надлежащая очистка не выполняется.