Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: AlphaBlending und Canvas der Oberklasse

  Alt 25. Nov 2005, 07:07
das inherited Paint kann ganz weg. Wenn du mehrere Dinge blenden willst und erst beim letzten Schritt alles auf die richtige Canvas bringen willst dann ändere bei Alphablend den ersten Parameter und gibt dort statt der richtigen Canvas dein NewPic an.
Delphi-Quellcode:
//erstes Blending auf das Tempbild
windows.AlphaBlend(NeuesBild.Canvas.Handle, 0, 0, Width, Height, FarbBitmap.Canvas.Handle,
                     0, 0, Width, Height, LBlendFunc);
//zweites Blending auf die richtige Canvas
windows.AlphaBlend(Canvas.Handle, 0, 0, Width, Height, NeuesBild.Canvas.Handle,
                     0, 0, Width, Height, LBlendFunc);
Dadurch das du zur Zeit hinter dem Alphablend noch BitBlt hast übermalst du mit BitBlt das geblendete. Du malst also im ersten Schritt mit AlphaBlend deine geblendete Farbe und danach übermalst du die geblendete Canvas wieder mit NextBitmap (durch BitBlt)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat