[c#] odświeżanie bitmapy

0

Moim zadaniem jest napisanie programu, ktorego efekt dzialania nawiazywalby do wygaszacza ekranu pt. „Ukryj swoje myśli” (Windows XP).

Mam funkcje, tworzaca surowa bitmape, ktora przypisuje do pictureBoxa i w ten sposob wyswietlam na ekranie. Napisalem rowniez funkcje, ktora rysuje linie na bitmapie i calosc umiescilem w Timerze, ktory co jakis czas przesuwa linie. Problem jest w tym, ze nowa linia jest caly czas nadpisywana do mojej bitmapy, tak wiec widze rowniez stan poprzedni, w ktorym byla linia (tworzy sie efekt takiej pogrubiajacej sie stale linii).

Jak temu zaradzic?

0

szukaj czegoś w stylu .repaint / .refresh albo .inalidate / .invalidateRect

0

z tym że prawdopodobnie będziesz miał efekt migotania dlatego proponuje włączyć doublebuffered i przechowywać w pamięci oryginał bitmapy, rysować na niej i dopiero ją wyświetlić

0

Z tym, ze jak daje np. Refresha czy cokolwiek innego to nic nie daje, bo caly czas nadpisuje zawartosc bitmapy, wiec sila rzeczy robi mi sie taki efekt. Jest jakas funkcja do czyszczenia bitmapy czy musze ja sam napisac :-/ ?

0

po prostu tak jak mówiłem zmiany rób na kopii a nie na oryginale

0

Czyli jak sie wlacza to doublebuffered? Nie bardzo rozumiem to co mi MSDN podpowiada.

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