TransparentBlt



  • Hi,
    Ich will mit Hilfe von TransparentBlt ein Bild zeichnen in dem eine Farbe Transparent ist. Um so ein Bild praktisch an seinen farbigen Kanten einzugrenzen statt in einem weißen Rechteck. Leider passiert sobald ich

    //////////////////////////////////////////////////////////////////////
    TransparentBlt(hdc, 400,0,100,130,hdc2,0, 0, 100, 130,RGB(255,255,255));
    ///////////////////////////////////////////////////////////////////////
    

    in der WM_PAINT case der Nachrichten Prozedur aufrufe nichts.Ich teste schon ne Weile rum aber komme dabei zu nichts; Ich verstehe noch nicht viel von WINAPI
    (Hinweise um Fragen vorzubeugen: hdc ist das HDC vom Fenster und hdc2 das HDC für das Bild)

    edit: sfds



  • Ruf doch mal GetLastError auf.
    Außerdem hilft es evtl. sich in der Doku über TransparentBlt zu informieren (vor allem die "Remarks").

    Benutz das nächste mal bitte Code-Tags, wenn du Code postest!



  • Ich habe GetLastError() schon aufgerufen. Dummerweise hat das nicht geklappt.
    Aber ich weiß das TransparentBlt wirklich kein Bild erzeugt weil es einen Fehler verursacht. Ich habe das über den bool Rückgabewert getestet.
    Ich kenne die Tags für Code Eingaben nicht.



  • Vergiss TransparentBlt.

    Windows 95/98: TransparentBlt contains a memory leak that can exhaust system resources. To draw a transparent bitmap using BitBlt, see Knowledge Base article 79212.



  • tnx für den Tipp
    mit dem Flag SRCAND klappt es prima


Anmelden zum Antworten