Всем привет, достался код требующий модификации, есть приложение 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); // тоже не работает
Вразумите кто знает как это сделать?