Hallo Strahleman,
GDI-Graphiken, müssen immer wieder eneuert werden, da sie sonst von den Routinen welche die GUI aktualisieren überzeichnet werden. Am einfachsten funktioniert das mit GuiREGISTERMSG (siehe Beispiel 3 in der Hilfe z GuiCtrlCreatePic, also so:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GdiPlus.au3>
$hGui = GUICreate("GUI", 1, 1, -1, -1, 0x81000000)
GUISetBkColor(0x000000, $hGui)
_GDIPlus_Startup()
Global $hgraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
Global $himage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\img\A_1.png")
_GDIPlus_GraphicsDrawImageRect($hgraphic, $himage, 0, @DesktopHeight - 120, 640, 100)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_GDIPlus_GraphicsDispose($hgraphic)
_GDIPlus_ImageDispose($himage)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEnd
; Draw PNG image
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
mfg autoBert