Длительный процесс, как прервать ?
От: misewk Украина http://misewk.ka92.info
Дата: 28.03.07 13:20
Оценка:
Описание: есть длительный процесс, вывожу на экран прогрессбар с процентами о сделанной работе, рядом ставлю кнопку с надписью "Прекратить" по нажатию на которой этот процесс останавливается. Проблема: в ходе выполнения процесса я не могу нажать на кнопку — как я понимаю все сообщения просто к форме не доходят Подскжаите как решается. Насколько я помню в Билдере нужно было вызывать функцию, что-то типа
Application.ProcessMessage();

и тогда на кнопку можно было нажать, может есть какой-либо аналог в MFC?
Может есть какой-нибудь другой метод решения проблемы .
Спасибо.
Re: Длительный процесс, как прервать ?
От: febus Германия  
Дата: 28.03.07 13:42
Оценка:
Здравствуйте, misewk, Вы писали:

M>и тогда на кнопку можно было нажать, может есть какой-либо аналог в MFC?


AfxGetApp()->PumpMessage();
Re[2]: Длительный процесс, как прервать ?
От: misewk Украина http://misewk.ka92.info
Дата: 28.03.07 14:12
Оценка:
Здравствуйте, febus, Вы писали:

F>AfxGetApp()->PumpMessage();


Не помогло...
Re: Длительный процесс, как прервать ?
От: Formidable  
Дата: 28.03.07 14:38
Оценка:
Поправлено форматирование текста. — SchweinDeBurg

M>Насколько я помню в Билдере нужно было вызывать функцию, что-то типа

M>
M>Application.ProcessMessage();
M>


вот так:
bool ProcessMessages()
{
    MSG msg;
    while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
    {
        if (WM_QUIT != msg.message)
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            PostQuitMessage(msg.wParam);
            return false;
        }
    }
    return true;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.