Rysowanie po ekranie i wymazywanie

0

Mam procedure rysujaca po ekranie:

procedure Rysuj;
var c:TCanvas;
    dc:hdc;

begin
 dc:=CreateDC('DISPLAY',nil,nil,nil);
 c:=TCanvas.Create;
 c.Handle:=dc;

 //tutaj cos rysuje np.
 c.Ellipse(10,10,100,100);
 c.TextOut(200,200,'NAPIS');


  //tutaj powinno nastapic wymazanie wszystkich narysowanych elementow 


 c.Free;
end;

W jaki sposob moge wymazac to co zostalo narysowane nie odswiezajac zawartosci wszystkich okien?
Zapisanie obrazu przed rysowaniem i pozniejsze przywrocenie go tez odpada.

0

Nie da się. A swoją drogą, skoro juz masz DC, to po co używasz dodatkowo canvasa? Bez sensu, niczego więcej nie potrzeba, a sam tcanvas i tak korzysta z funkcji Api :] Dodatkowy, nie potrzebny nakład kodu.

// albo zapisujesz gdzies bitmapę (proponuję np BitBlt), albo wysyłasz messydże, by odświeżyć okna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1