das erste mal GDI+ - wie gezeichnetes zeugs entfernen ?

  • moin,
    ich probiere mich gerade an GDI ... habs immer ausgelassen :) dementsprechend einfach ist meine frage:

    ich zeichne einen kreis:

    [autoit][/autoit][autoit][/autoit][autoit]

    ....
    _GDIPlus_Startup()
    $hPen = _GDIPlus_PenCreate(0xFFFFFFFF, 8)
    $hGraphic1 = _GDIPlus_GraphicsCreateFromHWND($hChild)
    $hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($hChild)
    ....
    Func _loop()
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 798, 68, 15, 15, $hPen)
    Sleep(50)
    _GDIPlus_GraphicsDrawEllipse($hGraphic2, 798, 68, 15, 15, $hPen)
    Sleep(50)
    EndFunc

    [/autoit]

    ... jetzt möchte ich in dem loop eine kleine animation erstellen, was so natürlich nicht geht,
    da der eine kreis erstmal entfert werden muss... genau das bekomme ich nicht hin.

    EDIT: der titel ist etwas irreführend, denn wenn ich noch einen zweiten kreis oder sonstwas gezeichnet habe, dann möchte ich natürlich
    nicht das alles entfernt wird, sondern nur der eine kreis der dann durch den kleineren überzeichnet wird soll weg.

    3 Mal editiert, zuletzt von WhiteLion (13. Februar 2012 um 21:06)

  • Hi,
    "entfernen" kann man bei Grafiken nichts!
    Du kannst einen bestimmten Bereich wiederherstellen, indem du die ursprüngliche Grafik zwischenspeicherst (in einem sog. "buffer") und diesen als Leinwand nimmst, um darauf zu zeichnen.
    Suche mal nach "Backbuffer" hier im Forum, die Frage wurde schon gefühlte 1,2 Millionen mal gestellt^^

  • https://autoit.de/index.php?page=Thread&threadID=20612 Das ist ein gutes Tutorial in dem auch der Backbuffer erklärt wird.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake