Sorry I've clicked space and it went off... here's the whole message:
void My_CMainWnd::OnPaint ()
{
CPaintDC dc(this);
dcMem->CreateCompatibleDC(&dc);
CBitmap *pOldBitmap = new CBitmap;
pOldBitmap = dcMem->SelectObject(myEng->TloBitmap);
CRect rcClient;
GetClientRect(&rcClient);
myEng->BBitmap->DrawTransparent(dcMem,myEng->Balls->BCoordinates-
x,myEng->Balls->BCoordinates->y,RGB(255,0,255));
dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),dcMem,0,0,SRCCOPY);
dcMem->SelectObject(pOldBitmap);
}
While the window should have it's surface refreshed - so that already
painted animated objects would dissapear - they stay
so when I've got a ball rolling around there's a trace of it's bitmaps
following.
From a workerthread I'm calling Invalidate()/Invalidate(NULL)/
UpdateWindow()/RedrawWindow() and sets of these in different
forms and none works properly. I mean window is being drawn properly
while being hidden and so on, just those moving bitmaps
are leaving those traces... I also 've got EraseBkgnd to return true
to avoid flickering.
DrawTransparent Method is from Jeff Prosise Programming Windows with
MFC book, and it is quite OK couse I've checked
this with standard BitBlt method instead of DrawTransparent and it
still gets the same malfunction.
Eliminate the "new CBitmap" - that is causing a memory leak. You can
every call, but nothing erases the old image in the dcMem. Try creating