GDI
-
hallo
Wie kann ich ein selbstgezeichnetes Objekt(Ellipse(......))
flackerfrei mit der maus über eine bitmap ziehen
das mit der Maus ist klar aber das flackern?Danke schonmal für die antwort
-
z.B.:
UpdateRgn.CreateRectRgnIndirect(markRect); this->RedrawWindow(&markRect, &UpdateRgn, RDW_INTERNALPAINT | RDW_INVALIDATE );Erklärung:
du kreirst eine Region und Updatest nur den Bereich, den du wirklich neuzeichnen mußt. Eleganter ist die Verwendung von Doublebuffering -> mal in der FAQ suchen.
-
zum thema double-buffering:
http://www.klangwerker.de/php/show.php?path=developer/german&doc=index_ger1&update=1rocknix ///
-
Danke für die Antworten
aber es klappt immer noch nicht
hab's mit DoubleBuffering versucht
das Problem ist das ich unter der zu bewegenden Ellipse
eine selbst erstellte Hintergrundbitmap habe in die dann reingezeichnet wird
(also die dann verändert wird)
wenn ich die Hintergrundbitmap je PAINT -aufruf neu lade
ist das Flackern sowie die zich Ellipsen(eine pro WM_MOUSEMOVE)
weg ,nur sie ist 800*600 Pix groß und dan stockt natürlich die bewegungEiner eine Idee?
-
also das Flackern ist mit doublebuffering weg aber die hintergrundbitmap
verändert sich halt(zich Ellipsen)
-
ladt doch einfach dein Bitmap in WM_CREATE und selektiere es in deinen Backbuffer. In z.B. WM_MOUSEMOVE zeichnest du jetzt einfach immer in diesen Backbuffer (anschließend InvalidateRect) und in WN_PAINT blittest du diesen einfach auf den Bildschirm. In WM_DESTROY musst du dann halt noch die Sachen (Bitmap, Backbuffer) wieder freigeben.
Falls dies nicht das ist, was du wissen wolltest: was genau ist dein Problem?
-
so mch ich es ja
aber trotzdem die zich Ellipsen
also entweder ich bin zu blöd...ich sitz jetz schon Stunden daran...
oder es liegt vielleicht daran dass bei Invalidaterect
das window neu gezeichnet wird und nicht der backbuffer
das heißt:
ich zeichne immer wieder in den backbuffer(= immer mehr ellipsen)
und bliite den dann ins window)
der backbuffer wird nie gelöscht,soll er ja auch eigentlich nicht ,da er static ist und die bitmap enthält
.....oder wie gesagt ich bin zu blöd.........
-
In general I find public schools to cater to the lowest common denominator. ,