C++ CLI rysowanie bitmapy na panelu

0

Mam sobie taki kod:

Graphics ^ graph = Graphics::FromImage(buffer);
graph->DrawImage(background,Point::Empty);

graph->DrawImage(chooseItem->BackgroundImage,x,y);

drawingSurface->CreateGraphics()->DrawImage(buffer,Point::Empty);

zmienne buffer i background są typu "Bitmap" drawingSurface to "Panel" "chooseItem" to też panel z którego pobieramy tło(obrazek). Buffer i background początkowo zawierają takie same obrazy. Ten kod co podałem ma za zadanie wyczyścić buffer tłem(zmienna background) i później skopiować na ten sam bufor jakiś mniejszy obrazek(bitmapa cegiełki 29x29) w lokacji w której znajduje się kursor. Problem polega na tym ,że jak jeżdżę tym kursorem po panelu to obraz cegiełki powiela się co nie powinno się zdażyć. Przzecież czyszczę bufor tłem(bitmapa siatki) i później rysuje tę cegiełkę więc cegiełka powinna po prostu znikać ze starego miejsca i pojawiać się na nowym.

0

dodałem: graph->FillRectangle(gcnew SolidBrush(Color::Black),0,0,drawingSurface->Size.Width, drawingSurface->Size.Height); i działa problem rozwiązany

0

dodaj

delete graph;

bo Graphics jest typem IDisposable. Tak, wiem, teoretycznie obiektów zarządzanych się nie zwalnia, ale są wyjątki ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1