Wielokrotne rysowanie na formie

0

Siema. Napisałem sobie programik do odtwarzania muzy, ot, kolejny klon winampa. A aby jakoś wyglądał, to nie stosowałem żadnych graficznych komponentów, ale wszystko (tabelki, suwaki, okienka) rysowałem na bitmapie, a bitmapę na formie. Cała akcja dzieje się w Timer'ze i wszystko git, ale program przy przesuwaniu po ekranie czasami "skacze" i zajmuje dużo pamięci RAM.

Zastanawiam się więc, czy w celu zoptymalizowania proga nie należałoby zablokować odświeżania formy. Czy w tym tkwi sęk? Ja jeśli tak, to jak to zrobić?

0

Wysuj wszystko po stałej bitmapie umieszczonej w pamięci - tam to aktualizuj i zmieniaj. A na akcję domaplowania zrób najprostsze, szybkie kopiowanie z tej bitmapy na obraz okna.

Albo jeszcze lepiej - poczytaj o Layered Windows (Win2k/XP only). Mają przezroczystość i inaczej zbudowany mechanizm odświeżania. W serwisie jest nawet gdzieś mój przykładowy kod robiący takie okno.

0

dokładnie działa to tak:
jak coś się zmieniło i trzeba ponownie to narysować to robisz to na bmp w pamięci a jak zmieni się położenie okienka, zostanie przesłonięte i odsłonięte lub cokolwiek co spowoduje, że jakaś część okna musi być odmalowana to rysujesz tą bmp na formatce

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