Не помогает. OnPaint не меняю при переходе от простого CDialog к окну с вкладками.
Но пожалуй приведу пример OnPaint (тебе я его уже высылал кстати)
void CWin_CCDlg::OnPaint()
{
CDC CMemDC1, CMemDC2, CMemDC3;
CBitmap pBitmap1, pBitmap2, pBitmap3, *pOldBitmap;
if (IsIconic()) {... }
else
{
CRect FrameRect;
CWnd *pWnd1=this->GetDlgItem(IDC_GRAPH_FRAME1); // Прямоугольник1 типа Rectangle
(Код для прямоугольника 2 и 3 удаляю так как всё также)
if(graphComplete){ // Флаг который выставляется процедурой чтения данных из файла
// после того как порция данных была преобразована в график во
// внутренних структурах класса отвечающих за график
CPaintDC dc1(pWnd1); // Берём DC от Прямоугольник1
pWnd1->GetWindowRect(FrameRect);// Привожу координаты прямоугольника
this->ScreenToClient(FrameRect); // к координатам окна
CMemDC1.CreateCompatibleDC(&dc1); // Создаю MemDC для способа быстрой перерисовки
// Буду рисовать на MemDC а потом поточечно копировать на DC прямоугольника 1
if (CMemDC1) {
//Делаю на DC битмап для рисования, а точнее чтоб потом проще было на реальный
//DC копировать
pBitmap1.CreateCompatibleBitmap(&dc1, FrameRect.Width()-1, FrameRect.Height()-1);
pOldBitmap = (CBitmap*)CMemDC1.SelectObject(pBitmap1);
//ch_Graph->DrawGraph(&dc1, FrameRect.Width(),
FrameRect.Height(),1,ch_Graph->GetSeriesQuantity()+1); // Это если хотим рисовать не через память, а напрямую в DC
ch_Graph->DrawGraph(&CMemDC1, FrameRect.Width(), FrameRect.Height(),1,ch_Graph->GetSeriesQuantity()+1); // Вызов процедуры вывода графика на указанный DC
// копируем биты из памяти на DC прямоугольника
dc1.BitBlt(0, 0,FrameRect.Width()-2, FrameRect.Height()-2, &CMemDC1, 0, 0, SRCCOPY);
// возвращаем старый bitmap
CMemDC1.SelectObject(&pOldBitmap);
// освобождаем контекст
DeleteDC(CMemDC1);
}
}
CDialog::OnPaint();
}
}
Пробовал два способа прорисовки. Первый указанный рисует через MemDC, пробовал откатиться к рисованию через обычный dc
(закомментированно красным). Если dc делаю не от прямоугольника (
pWnd1) а от самого диалога :
CPaintDC dc1(pWnd1); // Берём DC от Прямоугольник1CPaintDC dc1(
this);
// Берём DC от самого диалогато прорисовка нормальная происходит, только вот рисуется прямо на диалоге поверх всех кнопок, а хотелось бы внутри прямоугольника
pWnd1