Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > лови момент |
Автор: suborg 13.12.2002, 03:41 |
Программка должна улавливать момент, когда юзер нажал на завершение работы. Как-то пока не получается. Пишу на MSVC диалоговое приложение MFC. По идее винда рассылает всем WM_QUERYENDSESSION, по нему можно всё понять, но где его ловить не понятно - куда ни ткнусь, никуда оно не приходит. Пробовал поставить обработчики на OnClose окон, на PreProcessMsg и т.п. - ни где не выскакивает если завершать работу. Закрытие программы по Alt-F4 или крестиком отлавливается, а по shutdown - не получается. Может есть соображения, где его ловить-то? |
Автор: Step 13.12.2002, 18:25 |
тове сообщение по всей видимости отправляется только системным процессам, а они уже рассылают сообщения тима, wm_close. так что твое сообщение врядли попадает к тебе в приложение, кстати ты в APP, его ловить пробывал или нет |
Автор: suborg 14.12.2002, 00:07 |
Не, дело не в этом. Я разобрался уже. Там просто можно устанавливать фильтры сообщений для классов, так вот по умолчанию в диалоговом приложении на окно ставится фильтр диалоговых сообщений, другие до него не доходят, можно снять этот фильтр и поставить фильтр всех сообщений window, тогда приходит этот самый WM_QUERYENDSESSION, и всё прекрасно работает ![]() Это ClassWizard делается легко. |