Hi Community,
ich bräuchte für ein Spiel unbedingt Png-Dateien im GUI. Nun habe ich Hilfe nach "PNG" durchsucht und bin auf das gewöhnliche "Funktion GUICtrlCreatePic" gestoßen.
Dort steht "PNG kann mit GDI+ verwendet werden. Siehe Beispiel 3."
Beispiel 3:
Spoiler anzeigen
;----- Beispiel 3 wie das ganze auf mit PNg funktioniert (von Zedna)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
Global $hGUI, $hImage, $hGraphic, $hImage1
[/autoit] [autoit][/autoit] [autoit]; GUI erstellen
$hGUI = GUICreate("Show PNG", 350, 301)
; PNG Bild laden
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("MAIN.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState()
; Führe die GUI aus bis sie geschlossen wird
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Ressourcen aufräumen
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
; PNG Bild zeichnen
Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_PAINT
1. Nun hatte ich das Ganze mal mit diesem Beispiel gemacht und siehe da es geht, ABER die Png-Datei ist immer viel zu groß, egal welche Größe man einstellt sie ist immer um mindestens 30 Pixel zu groß (an meinem Script liegt es nicht, schon mehrmals alles geändert). Muss man dort irgendwas auf eine fixe Größe setzen?
2. Wie handhabe ich so eine Png-Datei? Kann ich diese auch irgendwie mit "GUICtrlSetPos" an bestimmte Positionen setzen?
Lg Jautois