Hallo zusammen, ich habe ein GUI auf welchem ich zeichnen möchte folgendermaßen erstellt:
Spoiler anzeigen
$hGUI = GUICreate("", $GuiWidth, $GuiHeight, Default, Default, BitOR(0x80000000, 0x08000000), BitOR(0x00080000, 0x00000008, 0x00000080))
GUISetState(@SW_SHOW)
$hDC_Window = _WinAPI_GetDC($hGUI)
$hDC_Buffer = _WinAPI_CreateCompatibleDC($hDC_Window)
$hBitmap_Buffer = _WinAPI_CreateCompatibleBitmap($hDC_Window, $GuiWidth, $GuiHeight)
_WinAPI_SelectObject($hDC_Buffer, $hBitmap_Buffer)
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC_Buffer)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)
[/autoit]Jetzt habe ich aber bemerkt, dass jedes mal wenn ich auf das Grafikobject $hGraphic zeichne, der Speicherverbrauch um ca. 150kB hoch geht. An sich nicht schlimm, aber da es durchaus vorkommen kann, dass ich mehrmals in der Sekunde neu zeichnen muss, kann sich das doch ganz schön summieren und nach der Zeit so viel Speicher verbrauchen dass nichts mehr funktioniert. Meine Frage ist jetzt an euch, welches Object ich neu erstellen muss, damit die nicht mehr genutzen Daten frei gegeben werden?
Das Freigeben und wieder erstellen des Grafikobjects per:
[autoit]
_GDIPlus_GraphicsDispose($hGraphic)
$hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC_Buffer)
Bringt leider nicht den gewünschten Erfolg. Jemand eine Idee?
Grüße ErrorKid