Перенаправление сообщений в окно
От: _agg  
Дата: 24.07.19 07:18
Оценка:
Всем привет, достался код требующий модификации, есть приложение SDI, в какой-то момент его работы показывается предварительный просмотр, а после распечатки документа или закрытия предварительного просмотра, нужно показать сообщение(MessageBox), и вот собственно вопрос, как мне выкрутится что бы не переписывать много кода остановить выполнение пока существует окно предварительного просмотра, пробовал так:
Print();  //окно предварительного просмотра для печати появилось
//попытка дождаться завершения работы с предварительным просмотром
while (dynamic_cast<CXpsView*>(GetActiveView())) {       // выполнять пока CXpsView является активным окном
    MSG msg;
    if (::PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) {    //пытаюсь получить и обработать
        ::TranslateMessage(&msg);
        ::DispatchMessage(&msg);
    }
    Sleep(1);
}

MessageBox(...);  // появляется сообщение



по факту в цикле он остается но XpsView ничего не получает, просто зависает, пробовал еще такой вариант:
pXpsView->PostMessage(msg.message, msg.wParam, msg.lParam);      // тоже не работает



Вразумите кто знает как это сделать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.