Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wie benutzt man MaskBlt richtig ? (https://www.delphipraxis.net/110489-wie-benutzt-man-maskblt-richtig.html)

Corpsman 18. Mär 2008 21:58


Wie benutzt man MaskBlt richtig ?
 
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 ?

Muetze1 18. Mär 2008 22:28

Re: Wie benutzt man MaskBlt richtig ?
 
Mask Handle vorher auf den DC selektieren mit SelectObject()?

Corpsman 19. Mär 2008 06:17

Re: Wie benutzt man MaskBlt richtig ?
 
solltest du


Delphi-Quellcode:
    SelectObject(canvas.handle, Mask_Rechts.MaskHandle);
meinen so ist die antwort NEIN, das geht nicht.

wenn ich das rein mache Rendert er mir nur die Maske und zerstört sogar das destination komplett.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz