Надо заставить приложение основанное на диалоге, сохранять данные при выключении питания, для чего пытаюсь перехватить сообщение subj.
примерно так
if(message == WM_POWERBROADCAST)
{
AfxMessageBox(_T("WindowProc::WM_POWERBROADCAST"), MB_OK|MB_ICONINFORMATION, 0); // в отладке для информации
OnDestroy(); // сохраняет данные
}
Кажется перепробовал уже все:
в app — PreTranslateMessage, SaveAllModified, ProcessMessageFilter
в dlg — PreTranslateMessage, OnWndMsg, WindowProc
ничто не работает
Здравствуйте, Аноним, Вы писали:
А>Надо заставить приложение основанное на диалоге, сохранять данные при выключении питания, для чего пытаюсь перехватить сообщение subj.
А>примерно так
А>А>if(message == WM_POWERBROADCAST)
А>{
А>AfxMessageBox(_T("WindowProc::WM_POWERBROADCAST"), MB_OK|MB_ICONINFORMATION, 0); // в отладке для информации
А>OnDestroy(); // сохраняет данные
return TRUE;
А>}
А>
А> Кажется перепробовал уже все:
А>в app — PreTranslateMessage, SaveAllModified, ProcessMessageFilter
А>в dlg — PreTranslateMessage, OnWndMsg, WindowProc
А>ничто не работает
Здравствуйте, Аноним, Вы писали:
А>Надо заставить приложение основанное на диалоге, сохранять данные при выключении питания
Обрабатываем сообщение WM_QUERYENDSESSION.
BOOL CMy1Dlg::OnQueryEndSession()
{
if (!CDialog::OnQueryEndSession())
return FALSE;
// TODO: Add your specialized query end session code here
MessageBox("WM_QUERYENDSESSION");
return FALSE; // Если запрещаем выход
//return TRUE; // Если разрешаем выход
}
Запускаем, например из проводника, наш экзешник.
Пытаемся выйти.
Здравствуйте, BlackHeretic, Вы писали:
А>>А>>if(message == WM_POWERBROADCAST)
А>>{
А>>AfxMessageBox(_T("WindowProc::WM_POWERBROADCAST"), MB_OK|MB_ICONINFORMATION, 0); // в отладке для информации
А>>OnDestroy(); // сохраняет данные
BH> return TRUE;
А>>}
А>>
а как поможет возврат TRUE если MessageBox не вызывается?