вопрос такой. В программе по нажатию на кнопку происходят длительные вычисления в цикле.
время около 20 минут. В это время программный интерфес подвисает (не реагирует не на
какие кнопки не на закрытие, не на прокрутку списков, даже окно не обновляется при его
перекрытии). Я где-то читал но не могу ни вспомнить, ни найти как можно сделать обновление
формы при таком вычислении. Вычисление производится в цикле. т.е. есть месту куда можно
вставить функцию которая будет обновлять. На visual basic-е вроде это Application.doEvents,
но мне нужно именно на visual с++ для MFC. Прошу помощи. Зарание спасибо за ответы.
Re: подвисание интерфейса при длительных вычислениях
Здравствуйте, Stas2003, Вы писали:
S>вопрос такой. В программе по нажатию на кнопку происходят длительные вычисления в цикле. S>время около 20 минут. В это время программный интерфес подвисает (не реагирует не на S>какие кнопки не на закрытие, не на прокрутку списков, даже окно не обновляется при его S>перекрытии). Я где-то читал но не могу ни вспомнить, ни найти как можно сделать обновление S>формы при таком вычислении. Вычисление производится в цикле. т.е. есть месту куда можно S>вставить функцию которая будет обновлять. На visual basic-е вроде это Application.doEvents, S>но мне нужно именно на visual с++ для MFC. Прошу помощи. Зарание спасибо за ответы.
Копай в сторону многопоточности — AfxCreateThread
Re[2]: подвисание интерфейса при длительных вычислениях
Здравствуйте, Stas2003, Вы писали:
S>вопрос такой. В программе по нажатию на кнопку происходят длительные вычисления в цикле. S>время около 20 минут. В это время программный интерфес подвисает (не реагирует не на S>какие кнопки не на закрытие, не на прокрутку списков, даже окно не обновляется при его S>перекрытии). Я где-то читал но не могу ни вспомнить, ни найти как можно сделать обновление S>формы при таком вычислении. Вычисление производится в цикле. т.е. есть месту куда можно S>вставить функцию которая будет обновлять. На visual basic-е вроде это Application.doEvents, S>но мне нужно именно на visual с++ для MFC. Прошу помощи. Зарание спасибо за ответы.
S>>вопрос такой. В программе по нажатию на кнопку происходят длительные вычисления в цикле. S>>время около 20 минут. В это время программный интерфес подвисает (не реагирует не на S>>какие кнопки не на закрытие, не на прокрутку списков, даже окно не обновляется при его S>>перекрытии). Я где-то читал но не могу ни вспомнить, ни найти как можно сделать обновление S>>формы при таком вычислении. Вычисление производится в цикле. т.е. есть месту куда можно S>>вставить функцию которая будет обновлять. На visual basic-е вроде это Application.doEvents, S>>но мне нужно именно на visual с++ для MFC. Прошу помощи. Зарание спасибо за ответы.
A>
A> MSG msg;
A> while( PeekMessage( &msg, hwnd, 0, 0, PM_REMOVE ) )
A> {
A> TranslateMessage(&msg);
A> DispatchMessage(&msg);
A> }
A>
Спасибо, практически то что нужно.
Re[3]: подвисание интерфейса при длительных вычислениях
On Wed, 11 Feb 2004 13:12:15 GMT, Stas2003 <26263@news.rsdn.ru> wrote:
S>>вопрос такой. В программе по нажатию на кнопку происходят длительные
вычисления в цикле. S>>время около 20 минут. В это время программный интерфес подвисает (не
реагирует не на S>>какие кнопки не на закрытие, не на прокрутку списков,
даже окно не обновляется при его S>>перекрытии). Я где-то читал но не могу
ни вспомнить, ни найти как можно сделать обновление S>>формы при таком
вычислении. Вычисление производится в цикле. т.е. есть месту куда можно S>>вставить функцию которая будет обновлять. На visual basic-е вроде это
Application.doEvents, S>>но мне нужно именно на visual с++ для MFC. Прошу
помощи. Зарание спасибо за ответы.
A>