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.





  • 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 bewegung

    Einer 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. ,


Anmelden zum Antworten