Einzelnen Beitrag anzeigen

grasmann

Registriert seit: 11. Apr 2008
3 Beiträge
 
#1

PNG auf Layered Window zeichnen

  Alt 18. Apr 2008, 18:28
Hallo,

ich habe folgendes Problem:

Ich habe eine Form erstellt die Ich per UpdateLayeredWindow mit einem PNG ausgestattet hab. Jetzt will ich darauf aber noch ein PNG anzeigen lassen, welches natürlich auch richtig auf die Grundform geblendet wird. Leider weis ich nich wie ich das realisiere und hoffe dass mir dabei jemand helfen kann XD.

Ich hab das ganze mit einem TImage32 versucht. Das Bild wird auch angezeigt, allerdings blendet er nich richtig, sprich: Es steht ein hässlicher rosa Rand XD. Ist das mit nem Image32 überhaupt möglich?

So sieht der relevante Code aus:

Delphi-Quellcode:
Bit2 := TBitmap32.Create;
LoadPNGintoBitmap32(Bit2, ExtractFilePath(ParamStr(0)) + 'close_blend.png', Alpha);
bit2.Width := 86;
bit2.Height := 36;

img := timage32.Create(form1);
with img do
  begin
    Left := 112;
    Top := 6;
    Width := 86;
    Height := 36;
    Parent := form1;
    onclick := form1.PNGButton1Click;
    bitmap.Width := 86;
    bitmap.Height := 36;
    Bitmap.DrawMode := dmblend;
    Bitmap.CombineMode := cmblend;
  end;

bitblt(img.Bitmap.Handle,0,0,86,36,bit2.Handle,0,0,SRCCOPY );
Ich mach daran jetzt schon ewig rum XD ... aber ich kriegs einfach nich hin.

Ich hab das ganze auch schon versucht direkt auf die form zu zeichnen. Also so:

bitblt(form1.canvas.Handle,0,0,86,36,bit2.Handle,0,0,SRCCOPY ); Aber auch dann wird das Bild nicht richtig dargestellt, allerdings ist es dann nicht nur ein rosa Rand, sondern die gesamte Grundfläche des PNG´s ist schwarz (also die stellen die eigentlich transparent sein sollten).

Ich weis nich mehr weiter bitte helft mir XD.
  Mit Zitat antworten Zitat