Hallo zusammen,
ist es eigentlich mit einfachen Mitteln möglich, ein transparentes GIF oder PNG in einer GUI zu platzieren (z.B. ein rotes Kreuz neben dem Abbrechen-Button) - so wie man es z.B. in HTML machen kann?
Sprich ohne irgendwie GUIs übereinanderzuschachteln oder GDI-Funktionen zu gebrauchen? Einfach so, mit einer Function à la GUICtrlCreatePic()...
In der Hilfe steht zwar ein Beispiel (s.u.), aber das kann doch - ehrlich gesagt - nicht wirklich wahr sein, dass man das für jedes einzelne Bild machen muss, oder?
Vielen Dank für Tips.
Gruß
Trainer
Das Beispiel aus der Hilfe:
Spoiler anzeigen
#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("PNG zeigen", 250, 250)
; PNG Bild laden
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("cancel.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState()
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
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