Gerätekontexte kopieren



  • Hallo!

    Ich möchte gerne folgendes realisieren:

    1. Einen Gerätekontext im Speicher erstellen
    2. Mittels FillRect(), LineTo() usw. was reinzeichnen
    3. den DC im Speicher z.B. über den PaintDC in meiner OnPaint Memfunc blitten.

    So hätt ich mir das vorgestellt, leider wird aber nichts angezeigt:

    CPaintDC dc(this);
    
    CDC dcMem;
    dcMem.CreateCompatibleDC(&dc);
    
    dcMem.FillRect(...);
    dcMem.MoveTo(...);
    dcMem.LineTo(...);
    
    dc.BitBlt(0, 0, 320, 200, &dcMem, 0, 0, SRCCOPY);
    
    DeleteDC(dcMem);
    

    Kann mir da jemand einen Tipp geben pls ?

    Vielen Dank
    testheini



  • Du solltest dem MemDC noch ein Bitmap zuweisen, auf das gemalt wird 😉



  • Mit diesen 3 Zeilen funktioniert es jetzt tatsächlich:

    CBitmap bm;
    bm.CreateBitmap(320, 240, dcMem.GetDeviceCaps(PLANES), dcMem.GetDeviceCaps(BITSPIXEL), 0);
    CBitmap *pOld = dcMem.SelectObject(&bm);
    

    Danke sehr.


Anmelden zum Antworten