OnSize, mal wieder



  • Hallo,
    habe ein Problem mit WM_Size. Ich weiss zwar, dass schon verschiedene Threads zu dem Thema existieren aber die helfen mir nicht weiter.

    Folgende Situation:
    Ich habe einen Programmmodus bei dem an der linken und rechten Bildschirmseite Steuerelemente sind und in der Miitte zeichnet eine Fuktion einen Graphen auf ein CClientDC.

    Nun wollte ich, dass sich der Bildschirminhalt der Bildschirmgröße anpasst und habe, deshalb eine Funktion geschrieben, die die verschiedenen Bildschirmelement verschiebt und/bzw. vergrößert/verkleinert. Bei den Steuerelementen klappt das soweit auch ganz gut, nur der Graph macht Probleme.

    Zwei Versionen habe ich ausprobiert:
    1. Ich setze ein Invalidate() vor die "Verschiebungs"-Funktion -> Der Graph wird jetzt gar nicht mehr angezeigt, obwohl der Befehl zum neuzeichnen erst nach dem Invalidate kommt.

    2. Ich lasse Invalidate weg und behalte stattdessen "Reste" der alten Ansicht über ud außerdem ist auf dem Graphen ein graues Rechteck, das so groß ist, wie eine Listbox, die vorher an der Stelle war.

    Ich komme einfach nicht weiter, wäre also für jede Hilfe dankbar!

    Euer,
    Romeo-G

    P.S.: Ein anderes Problem ist mir aufgefallen, als ich die Funktion zum Neuzeichnen ca. 1000 mal nacheinander aufgerufen habe -> Das Programm ist abgestürzt. Kann das daran liegen, dass ich HPen's und HBrush's darin initialisiere und diese nicht zerstöre?



  • Also ich würds anders machen bei einem OnSize wird sowieso das fenster neugezeichnet , male deinen graphen auf ein Bitmap und dann gibet so ne schöne funktion StrechtBlt. Macht sich super dazu. Fragst in deiner OnPaint einfach den CLientRect ab und dann kannste es bequem mit StrechtBlt auf die größe reduzieren. Und dein Graph muss doch net jedesmal neu gezeichnet werden oda???


Anmelden zum Antworten