Bilder verschieben mit GDI+

  • Kurz und knapp;
    wie verschiebt man Bilder mit GDI+?
    Normal benutzt man ja GUICtrlSetPos... Wie geht das in GDI+?

    Ich habe erst heute (vor einer Stunde) mit GDI+ angefangen. Finde leider nichts dazu.

    MfG

    Einmal editiert, zuletzt von $var (9. Dezember 2011 um 19:34)

  • Beim malen eines Bildes mit

    [autoit]

    _GDIPlus_GraphicsDrawImageRect()

    [/autoit]

    gibst du die Postion mit an. Die speicherst du in einer Variable ($x, $y z.B.) und dann änderst du die.

    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

  • Irgendwie kriege ich es nicht hin... Ich raffs grad nicht.
    Könntest du vielleicht ein kleines Beispiel zeigen? Pls.

    Hier eine kleine Vorarbeit:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup ()

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

    Global $x = 113
    Global $y = 58

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

    $h_GUI = GUICreate ("$var", 240, 160)
    GUISetState (@SW_SHOW, $h_GUI)

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

    $h_Image_File = _GDIPlus_ImageLoadFromFile (@TempDir&"\image.bmp")
    $h_Image = _GDIPlus_GraphicsCreateFromHWND ($h_GUI)
    _GDIPlus_GraphicsDrawImageRect ($h_Image, $h_Image_File, $x, $y, 14, 21)

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

    While True
    $nMsg = GUIGetMsg (1)
    Select
    Case $nMsg[0] = -3 And $nMsg[1] = $h_GUI
    _GDIPlus_Shutdown ()
    Exit
    Case _IsPressed ("0D") ; 0D == Enter
    ; Verschieben ~~~ !
    EndSelect
    WEnd

    [/autoit]
  • Kleines Beispiel (PS Schau dir mal das Tut von Ubuntu an)

    [autoit]

    #include <Misc.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    Opt("GUIOnEventMode", 1)

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

    Global $x = 0
    Global $y = 58

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

    $h_GUI = GUICreate("$var", 240, 160)
    GUISetOnEvent(-3, "_Exit")
    GUISetState(@SW_SHOW, $h_GUI)

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($h_GUI)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(240, 160, $hGraphic)
    $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    While Sleep(20)
    If $x <= 240 + 20 Then
    $x += 1
    Else
    $x = -20
    EndIf
    _GDIPlus_GraphicsClear($hBackbuffer, 0xFFFFFFFF)
    _GDIPlus_GraphicsFillRect($hBackbuffer, $x, $y, 20, 20)

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

    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, 240, 160)
    WEnd

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

    Func _Exit()

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    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

  • Danke. Das bringts jetzt.

    Das Tutorial von Ubuntu habe ich mir mal angesehen, fand ich aber irgendwie verwirrend,
    da immer wieder von A nach B gesprungen wird, ohne große Erklärungen...

    ~gelöst~