опубликован 07-04-2001 18:46 MSK
Народ! Вот тут такой трабл: хотел избавиться от мерцания в CView (слишком много там рисуется, и сильно заметно). Поступил как обычно: Создаю в памяти CompatibleDC, на нем рисую, а потом BitBlt'ю. Странно, но мерцание только увеличилось. В чем трабл, кто подскажет?::OnDraw(CDC* pDC)
Если кому надо, вот, выдрал ;-))
CDC BackBufferDC;
CBitmap BackBufferBitmap;
......
[тут GetClientRect'ом узнаю ClientSize]
......
CBitmap BackBufferBitmap;
CClientDC dc(this);
BackBufferDC.CreateCompatibleDC(&dc);
BackBufferBitmap.CreateCompatibleBitmap(&dc,ClientSize.cx,ClientSize.cy);
CBitmap* pOldBitmap = BackBufferDC.SelectObject(&BackBufferBitmap);
CBrush brBackground(::GetSysColor(COLOR_WINDOW));
BackBufferDC.FillRect(&ClientRect, &brBackground);
...................
Тут чего-то рисую на BackBufferDC
...................
pDC->BitBlt(0,0,ClientSize.cx,ClientSize.cy,&BackBufferDC,0,0,SRCCOPY);
BackBufferDC.SelectObject(pOldBitmap);
BackBufferDC.DeleteDC();