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

Материал из Весельчак У
Версия от 15:49, 3 октября 2009; RXL (обсуждение | вклад) (Новая: ===Как отобразить на элементах управления промежуточные результаты длительных вычислений?=== В общем ...)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

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

pWnd->Invalidate(0);

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

pWnd->UpdateWindow();

Пример:

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

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