Picture Box automatische Anpassung

  • Hallo Forum
    In meiner Gui habe ich ;
    $_Pic1 = GUICtrlCreatePic("", 8, 80, 40, 40)
    Wenn ich im Programmablauf das Bild mit;
    GUICtrlSetImage ($_Pic1, ”C:\Bild.bmp”,"",1)
    verändere, sollte sich $_Pic1 automatisch der Bildgröße anpassen.
    Was muss ich bei „GUICtrlCreatePic("", 8, 80, 40, 40, Style)” als Style angeben?
    Aus der Help bin ich nicht schlau geworden. ?(
    Danke für eure Hilfe

  • Das Control wird immer die größe haben, die du ihm gibst. das bild spielt dabei keine rolle. deshalb musst du das manuell mit
    GUICtrlSetPos()
    machen.
    zum herausfinden der große eignet sich gdiplus:

    AutoIt
    $hFile=_GDIPlus_ImageLoadFromFile($File);Bild laden
    $width=_GDIPlus_ImageGetWidth($hFile);breite speichern
    $height=_GDIPlus_ImageGetHeight($hFile);höhe speichern
    _GDIPlus_ImageDispose($hFile);bild freigeben (WICHTIG)
    $pos=ControlGetPos($GUI,"",$Control)
    GUICtrlSetPos($Control,$pos[0],$pos[1],$width,$height)
  • Danke dir für deine schnelle Antwort :thumbup:
    Mit GTI+ hatte ich zuerst keinen Erfolg, Dank deiner Antwort klappt es jetzt.
    Mir fehlte die Freigabe "_GDIPlus_ImageDispose" X/
    Danke dir

    Tolles Forum
    :thumbup:

  • Ich sags mal so:
    Dein Script würde auch ohne ImageDispose laufen... Aber der Arbeitsspeicherbedarf deines Programmes würde mit jedem Aufruf dieser Funktion steigen, bis das Programm abschmiert, weil kein Speicher mehr bereitgestellt werden kann :) (~1-2GB). Dann gibts sone schöne Fehlermeldung: Error Allocating Memory ;D

    Gern geschehen :)