Re[6]: Перерисовка окна. Сто раз читал - не могу понять!
От: Nickolaich  
Дата: 12.12.10 12:09
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Nickolaich, Вы писали:


N>>Здравствуйте, Pavel Dvorkin, Вы писали:


N>>Если я правильно понял, то

N>>1) void CПостроениеграфиковDlg::OnPaint() заменяю на void CПостроениеграфиковDlg::OnDraw()

PD>Да


N>>2) Остальной код, который был в OnPaint() и использовал CDC *pDC = GetDC() оставляю прежним, т.к. теперь работаю с OnDraw().


PD>Да


N>>3) В функциях, где нужно вызвать перерисовку графика вставляю UpdateWindow();


PD>Invalidate();

PD>// можно еще после нее UpdateWindow();

Не получается все равно — начисто все убирает, не прорисовывает.

void CПостроениеграфиковDlg::OnDraw(CDC* pDC)
{
...
CPen PGraph;
PGraph.CreatePen(PS_SOLID, 1, col_graf);
CPen *pOldPen = pDC->SelectObject (&PGraph);

for (int i=0; i<fx.size()-1; i++)
Line(pDC,215+15*fx[i],200-15*fy[i],215+15*fx[i+1],200-15*fy[i+1]);
}

void CПостроениеграфиковDlg::On_From_File()
{
........................
for (int i=0; i<coordx.size(); i++)
{
fx.push_back(atof(coordx[i].c_str()));
fy.push_back(atof(coordy[i].c_str()));
}

this->OnDraw(pDC);

Invalidate();
UpdateWindow();
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.