Bildausschnitt anzeigen

  • Da mir ein anderer Thread hier nicht wirklich geholfen hat, frage ich jetzt einfach mal nach.

    Ich habe ein Bild 3584x1024. In einer Gui möchte ich dieses jetzt darstellen, allerdings jeweils nur einen Teil von 400x400 Pixeln. Das Problem wäre, dass er so immer den Teil links oben nimmt. Allerdings soll sich das Bild praktisch in diesem Feld, das durch GuictrlcreatePic() erstellt wurde, verschieben. Also ich brauche praktisch eine Funktion die das Bild genauso anordnen kann, wie man die GUIElemente beim Erstellen anordnen kann (Left Top). Gibt es soetwas? Oder vielleicht auch andere Methoden...

    Einmal editiert, zuletzt von NoName (3. Februar 2009 um 11:37)

  • Mit dieser Funktion soll ich also praktisch den Teil, den ich vom Ursprungsbild haben möchte, nach"bilden" ?

  • Probiers aus, ob es das macht, was du willst ;)

    [autoit]

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

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

    _GDIPlus_Startup()
    $hGUI = GUICreate("GUI", 400, 400)
    GUISetState()

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

    $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Test.jpg")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hImage, 50, 50, 400, 400, 0, 0, 400, 400)

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

    GUIRegisterMsg($WM_PAINT, "WM_PAINT")

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

    While GUIGetMsg() <> -3
    WEnd

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

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

    Func WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hImage, 50, 50, 400, 400, 0, 0, 400, 400)
    EndFunc ;==>WM_PAINT

    [/autoit]


    lgE