Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
Delphi XE2 Professional
|
Wie benutzt man MaskBlt richtig ?
18. Mär 2008, 22:58
Hallo Leutz,
Habe im Forum gesucht, aber es gitb irgendwie keine Functionierende Variante
Ich will ein Transparentes TBitmap mittels MaskBlt zeichnen mein bisheriger Ansatz :
Delphi-Quellcode:
Function CreateMask(Bitmap: TBitmap): TBitmap;
Var
MaskBmp: TBitmap;
Begin
MaskBmp := TBitmap.Create;
With MaskBmp Do Try
Assign(Bitmap);
Mask(clfuchsia);
MaskHandle
Except
MaskBmp.Free;
Raise;
End;
Result := MaskBmp;
End;
..
// Erzeugen der Graphiken
fWerm_Rechts := GraphikEngine.LoadGraphik(Pfad + 'Werm_Rechts.bmp');// Liefert Tbitmap mit Pixelformat pf24bit
fWerm_Rechts.transparentcolor := clfuchsia;
fWerm_Rechts.transparent := True;
Mask_Rechts := CreateMask(fWerm_Rechts);
..
MaskBlt(Canvas.handle,
10,
10,
24,
18,
fWerm_Rechts.canvas.handle,
0,
0,
Mask_Rechts.MaskHandle,
0,
0,
MAKEROP4(MERGECOPY, SRCCOPY));
// was bereits geht ( aber eben ohne Transparents ) ist
(*
BitBlt(Canvas.Handle,
10,
10,
24,
18,
fWerm_Rechts.Canvas.Handle
,
0,
0,
SRCCOPY);
*)
weis mir jemand was ich da falsch mache ?
|
|
Zitat
|