Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > аналог DoEvents (.NET) в MFC |
Автор: maq 2.4.2009, 22:22 |
Есть ли аналог функции DoEvents (.NET) в MFC? Если какой-либо процесс занимает длительное время, то другие окна не перерисовываются, даже если я задаю Invalidate. Как решить это в MFC? |
Автор: Albor 3.4.2009, 06:24 |
Наверное Hook на WM_PAINT. Иначе окна ,будут получать это сообщение. |
Автор: Earnest 3.4.2009, 08:45 |
1) Длительная обработка должна выполняться в потоке - это самое правильное решение. 2) Другой вариант - "разбавить" длительную обработку вставками PeekMessage - DispatchMessage. Но этот вариант хуже - фактически требует повторения главного цикла, а там ведь не только DispatchMessage. Но если ограничиться выполнением WM_PAINT - то вполне можно. |
Автор: Alca 3.4.2009, 15:54 | ||
|
Автор: maq 3.4.2009, 17:42 | ||
Earnest, У меня такой случай. Долго открывается документ. И пока он открывается выскакивает окно с текстом «пожалуйста, подождите». Так вот этот текст не прорисовывается (в клиентской части). Что значит «выполняться в потоке»? И как это сделать технически? Alca
попробую разобраться. |
Автор: Alca 3.4.2009, 17:51 |
поиск -> _beginthreadex Добавлено через 1 минуту и 55 секунд примерчик |