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() с параметрами по умолчанию.