Подвисающее окно
От: Unix  
Дата: 08.06.05 10:26
Оценка:
Друзья! Пожалуйста, помогите с такой проблемой: при запуске, трудной задчи, происходит как бы подвисание окна, т.е. процесс обработки поставленной задачи продолжается, но окно, в котором это все выполняется, перестает практически отвечать на запросы, так, например, оно не перерисовывается, не сворачивается, не закрывается, вообщем создается впечатление зависшей программы. Пробовал вынести обработку задачи в модальное окно, то же не помогает — основное окно практически так же себя ведет. Наверняка многие видели, как при работе в какой-то программе имеется возможность прекратить работу (т.е. нажать кнопку Отмена). Меня интересует, как это делается, каким образом достигается возможность работы программы, с возможность её прекращения.

Спасибо за внимание!
Re: Подвисающее окно
От: Stronich Россия  
Дата: 08.06.05 11:01
Оценка:
Здравствуйте, Unix, Вы писали:

U>Друзья! Пожалуйста, помогите с такой проблемой: при запуске, трудной задчи, происходит как бы подвисание окна, т.е. процесс обработки поставленной задачи продолжается, но окно, в котором это все выполняется, перестает практически отвечать на запросы, так, например, оно не перерисовывается, не сворачивается, не закрывается, вообщем создается впечатление зависшей программы. Пробовал вынести обработку задачи в модальное окно, то же не помогает — основное окно практически так же себя ведет. Наверняка многие видели, как при работе в какой-то программе имеется возможность прекратить работу (т.е. нажать кнопку Отмена). Меня интересует, как это делается, каким образом достигается возможность работы программы, с возможность её прекращения.


U>Спасибо за внимание!



Потоки юзать надо!
Если коротко, то создаешь функцию, в которой и будет выполнятся твоя "трудная" задача. Далее запускаешь поток, и в кач-ве функции потока указываешь ей твою функцию. Вызовами CWinThread::SuspendThread и CWinThread::ResumeThread регулируешь выполнение задачи.
Подробнее читай у Рихтера(правда там без MFC, но зато поймешь как реализовывается многопоточность) или в MSDN'ке.
-------Posted by Stronich-------
<< RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[2]: Подвисающее окно
От: Матвей Жданович Беларусь  
Дата: 08.06.05 11:04
Оценка:
Здравствуйте, Stronich, Вы писали:

Можно еще внутри этой самой сложной задачи иногда проверять очередь сообщений
для главного окна.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Re: Подвисающее окно
От: Gridmer Россия www.i-tt.ru
Дата: 08.06.05 13:28
Оценка:
Сюда

и

сюда

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