FAQ:WinAPI VCPP:отображение результатов длительных вычислений

Материал из Весельчак У

Перейти к: навигация, поиск

Как отобразить на элементах управления промежуточные результаты длительных вычислений?

В общем случае это делается принудительной перерисовкой нужного окна путём объявления этого окна невалидным.

pWnd->Invalidate(0);

Затем непосредственной отсылки в оконную процедуру сообщения WM_PAINT.

pWnd->UpdateWindow();

Пример:

CWnd* pWnd = ...; // окно, которое надо перерисовывать
 
for (int i = 0; i < 10000; i++)
{
// меняется содержимое окна
// ...
 
// немедленная перерисовка
pWnd->Invalidate(0);
pWnd->UpdateWindow();
}

Также можно также просто вызвать метод RedrawWindow() с параметрами по умолчанию.