GDIPlus schaf läuft über Bildschirm

  • Was mach ich nur falsch? ?(
    das Schaf soll über den Bildschirm "laufen", also von oben links nach unten rechts.
    Im Anhang das Schaf;D

    [autoit]

    #include #include #include
    Local $hGui,$left,$top$left=50$top=50
    GUICreate("Rahmen", @DesktopWidth, @DesktopHeight, -1, -1, $WS_POPUP, $WS_EX_LAYERED)GUISetBkColor(0xABCDEF);macht die GUI durchsichtigGUISetState()_GDIPlus_Startup()
    $figur = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\schaf.gif")$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)

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

    Do_GDIPlus_GraphicsDrawImageRect($hGraphic,$figur,$left,$top,100,100)$left=$left+1$top=$top+1_GDIPlus_GraphicsClear($hGraphic)Until $left==500_GDIPlus_GraphicsDrawImageRect($hGraphic,$figur,$left,$top,100,100)
    While $GUI_EVENT_CLOSESleep(10)WEnd
    _GDIPlus_Shutdown()

    [/autoit]
  • Die GUI nur bewegen lassen, das Bild als PNG abspeichern und fertig. (Das Bild hat sich doch garnicht bewegt, wieso dann .gif?)
    Das müsste gehen:

    [autoit]

    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>

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

    Global $hGui,$left = 0, $right=0
    $hGui=GUICreate("Rahmen", 60, 50, 0, 0, $WS_POPUP,BitOR($WS_EX_LAYERED , $WS_EX_TOPMOST))
    GUISetBkColor(0x01, $hGUI)
    GUISetState()
    _GDIPlus_Startup()
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0x01, 0xFF, 3)
    $figur = _GDIPlus_ImageLoadFromFile(@desktopdir & "\schaf.png")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
    _GDIPlus_GraphicsDrawImageRect ($hGraphic, $figur, 0, 0, 60, 50)

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

    Do
    $left += 1
    $right += 1
    WinMove ("Rahmen","", $left,$right)
    Sleep (20)

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

    Until $left>=500

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

    _GDIPlus_Shutdown()

    [/autoit]


    Bild: