Flacker verhindern



  • Hallo,

    also ich habe eine eie Normale SDi anwenund die als View CView nuzt. Nun male ich ein neues Fenster abgeleitet von CWnd. Klappt auch alles, nur wenn ich das Hauptfenster nun mal in der größe veränder dann flackert der Hintergrund der CView durch mein neu gemaltes Fenster durch. Wie kann ich sowas verhindern? Ich will ein eigenes Control machen aber es sieht ja doof aus wenn bei jedem resize das Control Flackert.

    Danke für jede antwort im voraus.



  • Ersten bzw. Zweiten Parameter von Invalidate / InvalidateRect auf False setzen dadurch wird der Hintergrund nicht mehr gelöscht in den meisten fällen behebt das das Flackern. Ansonsten gibt es noch ein STYLE: CLipSiblings oder so änlich



  • Das Klappt nicht. Ich verstehe uch net wie mir InvalidateRect helfen soll. Denn das Problem ist ja das die View durch das neue Fenster durchflackert. Sry wenn ich ein wenig begriffsstutzig bin.





  • Grundsätzlich überschreibt ein Windows-Programm mittels WM_ERASEBGND
    den Canvas, bevor Paint kommt. Das macht man deswegen weil Windows
    ja nicht weiss, das dein Programm danach alles überbügelt.

    Wenn DU das Flackern verhindern willst, überschreibe WM_ERASEBGND
    und mache dort nichts (auch nicht die Basisklasse aufrufen).
    Allerdings musst Du jetzt "von Hand" den Bereich überschreiben,
    der nicht von deiner WM_PAINT plattgemacht wird!



  • Das verhindert jedoch nicht das gesammte flacker. das beste ist das anlegen eiener Speicherbitmap und dann das Blitten zum schluss ich mach das in einem Control so und es geht sehr sehr gut


Anmelden zum Antworten