Ich weiß, da Thema gabs schon einigemale, aber nach knapp 5 Stunden bekomm ich jetzt langsam Pipi in die Augen.
In meiner GUI möchte ich gerne eine PNG-Grafik anzeigen lassen, aber obwohl das Test.au3 funktioniert, verzweifle ich an der eigentlichen GUI.
Hier die Test-Variante:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#Include <WinAPI.au3>
$hGUI999 = GUICreate("Show PNG", 250, 250)
GUISetState()
_drawpng($hGUI999, "images\winamp001.png", 0, 0)
[/autoit] [autoit][/autoit] [autoit]; Loop until user exits
do
until GUIGetMsg() = $GUI_EVENT_CLOSE
Func _drawpng($pnggui,$pngpic, $pngx, $pngy)
Local $hImage999, $hGraphic999, $hImage999
; Load PNG image
_GDIPlus_StartUp()
$hImage999 = _GDIPlus_ImageLoadFromFile($pngpic)
$hGraphic999 = _GDIPlus_GraphicsCreateFromHWND($pnggui)
; Draw PNG image
; _WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic999, $hImage999, $pngx, $pngy)
; _WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_VALIDATE)
; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic999)
_GDIPlus_ImageDispose($hImage999)
_GDIPlus_ShutDown()
EndFunc
Aber wie ich es auch drehe und wende, in meiner eigentlichen GUI schaffe ich es nciht die PNG-Grafik anzeigen zulassen.
Bevor ich jetzt hier mein ganzes Script reinstelle, möchte ich einfach mal die Frage stelen, was denn die Basic für die Darstelung eines PNG-Images in einer GUI sind.
Wenn ich richtig liege, sollten doch folgende Punkte zum Erfolg führen?
Die Includes:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#Include <WinAPI.au3>
Erstellen der GUI:
$Irgendwas = GUICreate("Irgendwas", Breite, Höhe)
GUISetState()
Starten der DPIPlus.au3:
_GDIPlus_StartUp()
Laden des PNG-Images:
$hImage999 = _GDIPlus_ImageLoadFromFile("images\beispiel.png")
Anzeigen des PNG-Images:
_GDIPlus_GraphicsDrawImage($hGUI999, $hImage999, 0, 0)
GDIPlus, abschalten:
_GDIPlus_ShutDown()
Eine Schleife die die GUI am Leben hält:
zum Beispiel:
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd