Einzelnen Beitrag anzeigen

Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#1

Wie benutzt man MaskBlt richtig ?

  Alt 18. Mär 2008, 21: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 ?
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat