У меня основное окно, в котором крутится обработка сообщений через PeekMessage Ещё делаю немодальный диалог с прогрессбар и кнопочкой Cancel. Кнопочка не хочет работать. Видимо потому что процесс занят другим делом. Что делать? Или как правильно реализовать выполнение долгого дела с диалогом, прогрессбаром и кнопкой Cancel, чтобы можно было легко остановить его?
Так вроде основных способов 2 : 1) "допотопный" с опросом флага завершения во всех-всех циклах 2) обработка событий именно в процессе, который хочешь остановить. Я так понял, что твой процесс привязан к немомодальному диалогу. Выводу прогресс-бара ничего не мешает, если перерисовывать окно, а вот чтобы кнопочки работали надо периодически давать этому окну возможность обрабатывать события. К сожалению я освоил только Visual Basic - там это делается функцией DoEvent. Нить действительно дает изящное решение и даже диалог не нужен : все можно делать в главном окне. Правда возникает задача обмена информацией... , но тут я могу сильно ошибаться.