WinAPIGdi: Seltsames Verhalten bei Skalierung eines Bildes mit _WinAPI_AdjustBitmap

  • Hallo zusammen!

    Ich möchte ein Bild auf eine Gui zeichnen. Da auch PNG's zur Verwendung kommen, muss ich einen "Umweg" nehmen, um trotzdem GUICtrlCreatePic verwenden zu können.
    Der Vorteil ist, dass man sich dann nicht mehr um re-paint Aktionen kümmern muss, wenn sich Teile der Gui außerhalb des Desktops befinden.
    Des weiteren sieht das mit Hilfe des StretchBltMode "Halftone" skalierte Bild deutlich besser aus. (Info: _WinAPI_AdjustBitmap verwendet _WinAPI_SetStretchBltMode, um den Modus zu setzen)

    Leider tritt ein (für mich) nicht nachvollziebarer Effekt auf: Das im Modus Halftone skalierte Bild wird NICHT neu gezeichnet, wenn sich ein Teil der Gui außerhalb des Desktops befindet.
    Im Gegensatz dazu funktioniert ohne Verwendung des Modus alles wie es sollte.

    Hier ein kleines Testskript:

    Spoiler anzeigen


    Wenn jemand eine vollkommen andere Variante für mein Vorhaben hat, würde ich auch die nehmen, allerdings nichts mit "WM_ERASEBKGND" bzw "WM_PAINT".
    Mein Ziel ist ja, genau das zu umgehen, weil ich denke das meine Methode performanter ist.

    Beste Grüße, Friesel!

  • Mahlzeit!

    Ich habs dann jetzt doch erstmal mit "WM_ERASEBKGND" in Verbindung mit _WinAPI_UpdateWindow umgesetzt.

    Das ist auch bei übergroßen Bildern wie im unten stehenden Beispiel sehr performant:

    Spoiler anzeigen


    Falls aber dennoch jemand eine Lösung für mein ursprüngliches Problem anzubieten hat, wäre ich nicht abgeneigt.
    Deshalb lasse ich das Thema auch vorerst offen...

    Beste Grüße, Friesel!