Hay wieso funktioniert der backbuffer in dem script nicht?
[autoit]#include
#include
Opt("GUIOnEventMode",2)
OnAutoItExitRegister("_Exit")
Global $GuiWidth = 400, $GuiHeight = 400
Global $Charcoords[4] = [-200,100,200,200]
Global $Speed = 1
_GDIPlus_Startup()
Global $Red = _GDIPlus_BrushCreateSolid(0xFFFF0000)
Global $White = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
$Gui1 = GUICreate("GDI+ Erste Schritte",$GuiWidth,$GuiHeight)
$Grapic1 = _GDIPlus_GraphicsCreateFromHWND($Gui1)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($GuiWidth, $GuiHeight, $Grapic1) ; Bitmap-Objekt mit bezug auf unsere Grafik erstellen
$hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap) ; Grafik-Kontext holen.
GUISetOnEvent(-3,"_Exit")
GUIRegisterMsg(0x000F,"WM_PAINT")
GUiSetState()
While 1 * Sleep(10)
_Erneuern()
WEnd
Func _Exit()
_GDIPlus_BrushDispose($Red)
_GDIPlus_BrushDispose($White)
_GDIPlus_GraphicsDispose($Grapic1)
_GDIPlus_Shutdown()
Exit
EndFunc
Func _Erneuern()
$Charcoords[0] = $Speed + $Charcoords[0]
If $Charcoords[0] > $GuiWidth Then $Charcoords[0] = -200
_WinAPI_RedrawWindow($hBackbuffer,0,0, $RDW_INTERNALPAINT)
EndFunc
Func WM_PAINT()
_GDIPlus_GraphicsClear($hBackbuffer,0xFFF0F0F0)
_GDIPlus_GraphicsFillRect($hBackbuffer,$Charcoords[0],$Charcoords[1],$Charcoords[2],$Charcoords[3])
EndFunc
[MSIE_newline_end ]