Grauer "Abdruck" in Textfeld nach MessageBox



  • Hallo zusammen,

    wenn ich eine MessageBox ausgebe und diese dann mit OK bestätige, erscheint im Textfeld (Tab Control) in meiner Anwendung eine Art grauer Abdruck von der MessageBox.

    Hier sieht man das ganze noch einmal: http://yfrog.com/mlscreen2mj

    Wie kann ich dies verhindern?

    Gruß
    Flo



  • zwinge Deine Anwendung sich neu zu zeichnen 😉
    mit UpdateWindow() (eventuell auch InvalidateRect() benutzen)



  • Ok danke. Lasse nun an den entsprechenden Stellen das Fenster neu zeichen und passt nun alles 🙂


  • Mod

    Das sollte normalerweise genau durch das schleßen der MessageBox selber passieren.
    Kann es sein, dass sich Deine Fenster überlappen und das dadurch Dein Fenster denkt, es müsste sichnicht neu zeichnen.
    Solche Fehler deuten meistens auf ein Problem mit der Z-Order / Überlappungen / oder ein fehlendes WS_CLIPCHILDREN/WS_CLIPSIBLINGS hin.

    Das durch ein erzwungenes Neuzeichnen zu erreichen ist mit Sicherheit der falsche weg. Wenn Deine Anwednung (teilweise) verdeckt wird von anderen Fenstern, wird das evtl. gerade wieder passieren.



  • Ich glaube das Problem liegt am überlappen. Ich habe einen Button, mit dem ich ein Menü aufrufe, das mein Hauptfenster teilweise überlappt. Im Menü sind wieder Buttons, denen Funktionen hinterlegt sind, die entsprechenden Meldungen über MessageBoxes ausgibt.

    Wie kann ich hier vorgehen, da das Überlappen hier gewollt ist?


  • Mod

    Ein Problem beim überlappem kann es nur von Fenstern auf gleicher Z-Order Ebene geben.
    Dann muss WS_CLIPCHILDREN oder WS_CLIPSIBBLINGS je nach Fall verwendet werden.
    Wenn sich Child-Controls nicht überlappen gibt es hier keine Probleme...
    Wenn das Fenster ein Popup ist kann es da auch keine Probleme geben...


Log in to reply