Fehler bei Dartellung von Farben etc.



  • Ich habe ein MFC Dialog auf dem ich mehrere Objekte mit OnCtlColor eingefärbt.
    Die Farbgebungen werden über OnInit, Buttons oder über Timer aufgerufen.
    Jeweils mit ObjektControlVariable.Redraw();
    Das funktioniert alles auch super.

    Wenn jetzt aber das Programm so vor sich hinläuft dabei aber nicht ständig im Vordergrund steht, kommt es häufig vor das der ganze Dialog nur noch weiß ist, wenn er wieder in den Vordergrund geholt wird. Alle Elemente sind nur noch als Umrisse zu erkennen und ich kann nur durch Neustart des Programms, die Grafik wieder herstellen.

    Hat irgendjemand eine Idee, woran das liegen könnte und wie man das verhindern kann.

    Meine Idee wäre: Neuzeichnen, aller Objekte, wenn der Dialog wieder den Focus bekommt. Ich habe aber keine Ahnung wie ich das geht.

    I'm sorry. Ich bin noch recht frisch in VC++ MFC, deshalb würde ich mich über detaillierte Antworten sehr freuen.

    Vielen Dank im Voraus.


  • Mod

    Kann es sein, das Du die ganze Zeit neue GDI Objekte erzeugst ohne die alten zu entsorgen?
    Oder das Du noch selektierte GDI Objekte (SelectObject) entsorgst?



  • Die Anzahl der GDI-Handles kannst du dir übrigens zum Beispiel im ProcessExplorer anzeigen lassen ( siehe http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx ). Wenn die über die Laufzeit deines Programms immer weiter anwächst, hast du wahrscheinlich ein GDI-Leak.

    Gruß Kimmi


Anmelden zum Antworten