Hi,
ich bin, das muss ich gestehen ein bisserl was NEU, wenn es um AutoIT geht, um ganz genau zu sein es geht um mein allererstes Script
Prinzipiell geht es darum, dass ich in einer GUI Daten eingebe und diese dann in einer zweiten GUI als Voransicht anzeigen lassen will.
Nun verzweifle ich grade daran, dass ich in der zweiten GUI eine png brauche (einen iPhone Screenshot um genau zu sein)
Aber, irgendwie will das nicht funktionieren
Die Funktionen die die PNG betreffen sehen so aus:
[autoit]FUNC Preview()
; GUI erstellen
$Preview = GUICreate("Preview", 747, 541, 354, 210)
$app_t = GUICtrlCreateLabel($app_name, 0, 0, 746, 29, $SS_CENTER)
$app_i = GUICtrlCreatePic($app_image, 0, 32, 320, 480, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$app_d = GUICtrlCreateLabel($app_desc, 325, 32, 454, 487)
$app_l = GUICtrlCreateLabel($app_name, 0, 522, 746, 18, $SS_RIGHT)
; PNG Bild laden
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("MAIN.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Preview)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState()
; Führe die GUI aus bis sie geschlossen wird
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
; PNG Ressourcen aufräumen
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
; ENDE PNG
GUIDelete()
;ShowInput()
EndSwitch
WEnd
EndFunc
; PNG Bild zeichnen
Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
_WinAPI_RedrawWindow($Preview, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 32)
_WinAPI_RedrawWindow($Preview, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_PAINT
Und Wenn ich Preview() aufrufe nach Scriptstart (ob mit gefüllten oder ohne gefüllten variablen ist dabei egal) funktioniert das auch tadellos.
Sobald aber $Preview die ZWEITE geladene GUI ist, ist das png weg, wie man an dem Quellcode sieht,
hab ich die png testweise schon festgesetzt auf eine vorhandene Datei um einen Fehler in der variablen zu umgehen.
Die Frage also ist: Wieso funktioniert das nicht, wenn ich eine andere GUI zuerst lade?
Danke schonmal für Eure Hilfe
'sid