Официальный сайт студ.городка НГТУ
Программирование и БД » [visual c++] перерисовка экрана 

#1  06.05.08 17:56

[visual c++] перерисовка экрана

Подскажите пожалуйста!
Есть функция:

Код: c++:

void Cvisual_metroView::OnFileStartsimulation()
{
	Dialog dlg;
	CDC *pDC=GetDC();
 
	INT_PTR Result=dlg.DoModal();
 
	if(Result!=IDOK) return;
 
	Statistic object(dlg.Stations_Amount, dlg.Trains_Amount, dlg.Carriages_Amount, dlg.Price);
 
	object.Calculate_First_Interval();
 
	object.Calculate_Second_Fourth_Interval(2);
 
	object.Calculate_Third_Interval();
 
	object.Calculate_Second_Fourth_Interval(4);
 
	object.Calculate_Fifth_Interval();
 
	object.PrintResult(pDC);
 
	ReleaseDC(pDC);
}

Вызывается диалоговое окно, вводятся данные.
Затем идут рассчеты и, наконец, печать.
На экране в том месте, где было диалоговое окно вместо текста остается пустой белый квадрат, другими словами, диалоговое окно как бы стирает будущий текст, там где оно появилось.
В остальных местах экрана текст напечатан нормально.

Иногда текст печается полностью корректно.

Если вставить ф-ию Invalidate() после вызова диалог. окна, то текст появляется на мгновение и стирается.

Подскажите, пожалуйста, как решить эту проблему?

Исправлено Дональдак (07.05.08 08:16)

Offline

#2  08.05.08 13:59

Re: [visual c++] перерисовка экрана

Ты текст выводишь в главное окно обрабатывая какое сообщение???
Выводи текст обрабатывая WM_PAINT

Offline

#3  08.05.08 18:51

Re: [visual c++] перерисовка экрана

проверь, кстати, может ты вычисления в гуевом потоке пытаешься делать?

Offline

#4  08.05.08 22:34

Re: [visual c++] перерисовка экрана

WM_PAINT сейчас обработать, поставлю вывод туда.
Вычисления здесь не при чем, так как и без них проблема остается.
Всем спасибо!

Offline

Программирование и БД » [visual c++] перерисовка экрана 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.032 сек.
Выполнено 14 запросов.