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-Objekt

    CPaintDC 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-Objekt

    int 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-Koordinate

    BITMAP 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


Anmelden zum Antworten