GUICtrlCreatePic(...) Fehler bei Variable als Höhe

  • Hi,

    ich hab was versucht um ein Bild in einer gui genau mittig anzuzeigen, und dafür halt zosusagen die Höhe von dem bild ausgelesen und damit ausrechnen lassen... Aber es scheitert einfach daran, dass das programm die variable nicht annimmt. wenn ich diese mit ner MsgBox oder so ausgebe passt das optimal aber GUICtrlCreatePic kommt damitn icht klar. Hier der Code:

    [autoit]

    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

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

    main()
    Func main()
    $file = @ScriptDir & "\Bild1.jpg"
    GUICreate("Bild", 320, 350)
    GUISetBkColor(0xFFFFFF)
    $pic = GUICtrlCreatePic($file, 10, _GetY($file, 300, 1), 300, _GetY($file, 300, 0))
    GUISetState()

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    Exit
    EndIf
    WEnd
    EndFunc

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

    Func _GetY($file, $height, $dim)
    _GDIPlus_Startup()
    $load = _GDIPlus_ImageLoadFromFile($file)
    If $dim = 0 Then
    Return _GDIPlus_ImageGetHeight($load)
    ElseIf $dim = 1 Then
    Return ($height - _GDIPlus_ImageGetHeight($load))/2
    EndIf
    _GDIPlus_Shutdown()
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von philipp (14. August 2014 um 11:09)

  • Ok ich habe selbst eine Lösung gefunden: AutoItScript.com machts möglich!:D einfach 0 als höhe sowie als breite angeben, damit die original größen verwendet werden, und die position ist dann auch egal.. ;)

  • Ok ich habe selbst eine Lösung gefunden: AutoItScript.com machts möglich!:D einfach 0 als höhe sowie als breite angeben, damit die original größen verwendet werden, und die position ist dann auch egal.. ;)


    Sehr schön, dann setz doch bitte noch den Thread-Präfix auf gelöst ;)

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski