Context wird nicht überschrieben trotz Backbuffer

  • Hallo Leute,

    und zwar habe ich ein Tool geschrieben, womit es möglich ist innerhalb einer GUI, an ein Bild ran -und wegzuzoomen. Beim Wegzoomen überrschreibe ich das alte Bild mit einer weißen Bitmap damit keine rückstände mehr zusehen sind. Leider bleibt immer der Rand beim wegzoomen vom Bild zurück sodass komische Muster zu sehen sind. Weiß jemand weiter=?

  • Hallöle, das Minimalbeispiel fehlt. Hab keine Lust da eine GUI zu programmieren nur um dein eigentliches Problem mal grafisch am Bildschirm zu sehen.
    LG. Make :)

  • Ich kann es leider grade nicht Testen, da ich kein AutoIt zur Verfügung habe aber versuch mal folgendes zu ändern, eigentlich müsste es helfen.

    1.)
    Du erstellst einen Backbuffer zeichnest dein Bild aber direkt auf das Fenster.
    Du solltest das $hGraphics in Zeile 21 durch ein $hBackbuffer ersetzen und folgende Zeile daunter setzen:
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap_Gui, 0,0)

    2.)
    In der Funktion zoomOut erstellst du mit jedem durchlauf 3 Bitmaps, diese sollten noch in der Funktion freigegeben werden um übermäßigen Speicherverbrauch durch tausende von Bitmaps vorzubeugen, du kannst dafür _GDIPlus_GraphicsDispose verwenden.

    3.)
    Du brauchst kein weißes Bild, benütze einfach die Funktion _GDIPlus_GraphicsClear() um den Hintergrund weiß zu färben.