CDC-ausschnitt in Bitmap-array kopieren
-
hi,
hab da n rieeesen problem, und zwar zeichne ich auf nem CImage-DeviceContext und muss regelmäßig einen kleinen teil neu zeichnen.also ich bewege quasi eine figur ueber dieses bild, und muss nun verhinder das das ding spuren hinter sich herzieht .. also:
- wenn bild vorhanden, an alter position einfügen
- neuen bildausschnitt an künftiger position kopieren
- figur an neue position zeichnenund das so alle 50ms ... aber das problem ist, das er beim kopiern wohl irgendwas verhaut oder so, hab da schon diverse tutorials ausm netz probiert, aber es funzt einfach nicht, hier mal der wichtige teil

void CDrawInterface2D::loadRobot(int ID, int style, CVector pos){ CDC memDC; //temp speicher memDC.CreateCompatibleDC(mDC); //mDC = pointer auf CImage-DC BITMAP bmRobot; //Eckkoordinaten des Roboters CVector bottomright = pos + (CVector(ROBOTSIZE,ROBOTSIZE).scaled(0.5)); CVector topleft = pos - (CVector(ROBOTSIZE,ROBOTSIZE).scaled(0.5)); CPoint ptl = mGDIWrapper->WorldToPixel(topleft); CPoint pbr = mGDIWrapper->WorldToPixel(bottomright); //Breite und Hoehe des Roboters int height = pbr.y - ptl.y; int width = pbr.x - ptl.x; if (ID > 0){ //altes Bild einsetzen if (mDrawnOnce){ memDC.SelectObject(&clrRobot[ID-1]); mDC->StretchBlt(ptl.x,ptl.y,width,height,mDC,0,0,30,30,SRCCOPY); }//if //neues Bild kopiern memDC.SelectObject(&clrRobot[ID-1]); memDC.StretchBlt(0,0,30,30,mDC,ptl.x,ptl.y,width,height,SRCCOPY); //Roboter laden switch (style){ case 0: picture[16].GetObject(sizeof(bmRobot),&bmRobot); memDC.SelectObject(&picture[16]); break; case 1: picture[17].GetObject(sizeof(bmRobot),&bmRobot); memDC.SelectObject(&picture[17]); break; case 2: picture[18].GetObject(sizeof(bmRobot),&bmRobot); memDC.SelectObject(&picture[18]); break; case 3: picture[19].GetObject(sizeof(bmRobot),&bmRobot); memDC.SelectObject(&picture[19]); break; }//switch mDC->StretchBlt(ptl.x,ptl.y,width,height,&memDC,0,0, bmRobot.bmWidth,bmRobot.bmHeight,SRCCOPY); }//if }//loadRobotclrRobot definiert als -> CBitmap clrRobot[20]; da sollen regelmäßig abhängig von der ID welche in der methode uebergeben wird neue ausschnitte rein.
also die roboter ham ne ID und die robos werden eben alle 50ms gemalt.
nu is eben das prob das der immer noch eine spur zieht, und nix kopiert und einfügt und dergleichen.hoffe mir kann einer helfen