Я пытаюсь поймать WM_QUERYENDSESSION, чтобы сохранить некоторые данные в приложении, но похоже, что я не получаю это сообщение о выходе пользователя из системы/перезапуске системы, когда приложение сводится к минимуму системный лоток. Как я могу его поймать?Не получаю WM_QUERYENDSESSION при минимизации до системного лотка
Спасибо.
Соответствующий код (ничего магии там, надеюсь :)):
ON_WM_QUERYENDSESSION()
BOOL CMainFrame::OnQueryEndSession()
{
AfxMessageBox(L"Are we hitting this?");
return FALSE;
}
Для трей я использую сторонний LIB (CodeJock), который я, вероятно, не могут оставлять здесь, но, как правило, он создает скрытое окно для обработки сообщений, но главное окно - это просто ShowWindow (SW_HIDE), когда это необходимо. Возможно, мне нужно перехватить это сообщение в этом скрытом окне и передать его, мне нужно попробовать это.
Я думаю, нам нужно будет увидеть некоторые из вашего кода. В частности, сбой лотка и код WM_QUERYENDSESSION. –
Да, определенно нужно увидеть код здесь. Я видел проблемы с приложениями MFC, когда сообщения WM_QES были прерваны вспомогательными окнами IME, возвращающими FALSE (отключив расширенные текстовые службы, которые были решены этим), но я никогда не видел случая, когда выходила ошибка, но мое приложение не увидело сообщение. –
Спасибо за ответы. Я добавил еще несколько объяснений на вопрос. Я рад предоставить больше кода, конечно. – dennisV