Problem mit mehrfachem Anzeigen einer Bitmap
-
Hallo Leute,
ich habe ein Problem zu folgendem Quellcodeausschnitt, der zwei Bitmaps mehrere Male auf einer Hintergrundbitmap anzeigen lassen soll.
Es erscheint aber immer nur eine Bitmap auf dem Hintergrund und diese auch nur einmal. Woran könnte dies liegen? Wüsstet ihr vielleicht eine Antwort?
Oder eine Möglichkeit dieses Problem zu Lösen?////////////////////////////////////////////////////////////////////////////
void CMeinDlg::OnPaint()
{
Bild[0].LoadBitmap(Hintergrund); //CBitmap-ObjektCPaintDC dc(this); // Gerätekontext für Zeichnen
CPaintDC* pDC = &dc;
BITMAP bmBackground; //BITMAP-Struktur bm deklarieren
Bild[0].GetObject(sizeof(bmBackground),&bmBackground); //Größe und Adresse von CBitmap Bild[0] --> BITMAP bm
CDC memDC;
memDC.CreateCompatibleDC(pDC); //SpeicherDC initialisieren
memDC.SelectObject(&Bild[0]); //Hintergrundbild --> Speicher
RECT Rect;
GetClientRect(&Rect);
pDC->StretchBlt(0,0,Rect.right,Rect.bottom,&memDC,0,0,
bmBackground.bmWidth,bmBackground.bmHeight,SRCCOPY);
CDialog::OnPaint();Bild[1].LoadBitmap(IDB_BITMAP3); //CBitmap-Objekt
Bild[2].LoadBitmap(IDB_BITMAP4); //CBitmap-Objektint nXDest=0; //X-Koordinate der Bitmap
int nYDest=0; //Y-Koordinate der Bitmap
int b=2;
int c=0;
int e=1;for(c=0;c<=1000;c++) {
if(e==1) {
b=1;
e=+1;
}
if(e==2) {
b=2;
e=-1;
}nXDest=+20; //Erhöhung der X-Koordinate
nYDest=+20; //Erhöhing der Y-KoordinateBITMAP bm;
Bild[b].GetObject( sizeof( bm ), &bm );
CDC SpeicherDC;
SpeicherDC.CreateCompatibleDC( &dc );
SpeicherDC.SelectObject( &Bild[b] );
CRect Rect2, rect;
GetClientRect( &Rect2 );dc.BitBlt(nXDest,nYDest, bm.bmWidth, bm.bmHeight,
&SpeicherDC,0,0,SRCAND);}
/////////////////////////////////////////////
Schon mal vielen Dank im vorraus!
Gruß Crabbe