window DC für spätere verwendung in offscreen dc ablegen



  • hallo zusammen,

    ich würde gerne für mein kleines gdi 2d projekt einen
    DC in der grösse meines fensters haben in dem ich zeichnen kann aber auch
    zwischendurch eine copy des eigentlichen fensters ablegen kann.

    also mal ganz grob wass ich versucht habe
    ...

    // handel auf window dc holen
    handel = GetDC( hwnd );
    // backbuffer offscreen dc machen und mit comp. bitmap füllen
    BackBuffer = CreateCompatibleDC( handel );
    BackBit    = CreateCompatibleBitmap( BackBuffer ,500 , 500  ); 
    
    ... zeichenoperationen im window dc ( handel )
    
    // window dc in backbuffer blitten                        
    BitBlt( BackBuffer , 0 ,0 ,500 ,500 ,handel ,0 ,0 ,SRCCOPY );
    
    ... divers und zeichen im window dc (handel)
    
    // den alten stand aus dem backbuffer dc ins window dc bringen
    BitBlt( handel , 0 , 0 , 500, 500, BackBuffer, 0 , 0 , SRCCOPY);
    

    ich hoffe es wird klar was ich machen will, quasi den backbuffer dc als ablage verwenden um später wieder drauf zuzugreiffen.
    leider klappt es nicht , es passier orginal nix was sichtbar wäre ..

    kann mir da einer auf die sprünge helfen ??

    danke !



  • also ich muss meinen beitrag ein bissel korregieren,
    damit es richtiger ist.

    da wo ich im oberen beispiel von 'zeichenoperationen' und 'zeichen' spreche,
    ist es so das ich geladene *.bmp in den window dc 'geblitted' habe.
    nach ein wenig testen ist mir nämlich aufgefallen das die mit FillRect
    gezeichneten sachen bei dem vorgang genau so mitgenommen werden wie ich es möchte,
    aber bitmaps die die gezeichneten sachen eigentlich überlagern werden nicht mitgenommen.

    hat da jemand eine idee.

    danle


Anmelden zum Antworten