Zwei nicht modale Dialogfelder handeln



  • Hallo zusammen...

    Ich hänge wiedereinmal an einem Problem mit nicht modalen Dialogen...
    Also folgendes (Arbeite mit VC++ 6.0):

    In meiner App steht zu Beginn ein nicht modales Dialogfeld, welches zeitweise von einem zweiten nicht modalen überdeckt werden soll.
    Das zweite wird vom ersten jeweils aufgerufen.

    Damit beide Dialogfelder jeweils mit der App verschoben werden können, habe ich den Style von beiden Dialogfeldern als "Untergeordnet" deklariert.

    Zuerst hatte ich das Problem, dass bei der Erzeugung des zweiten Feldes, dies nicht vollständig neu gezeichnet wurde. Dies liess sich dann relativ einfach mit der Methode Invalidate lösen. Nun habe ich aber noch das Problem, dass ich das zweite Fenster, welches nun über dem ersten liegt, nach Aufruf von DestroyWindow() nicht mehr vollständig "wegmachen" kann...Ich habe dann da noch so "Leichen" rumliegen...Wie kann ich vom zweiten Dialogfeld nun das erste (aufrufende) Dialogfeld dazu bringen, sich neu zu zeichnen?

    Ich habe es schon mit der Methode GetParent() versucht, hat aber irgendiwe nicht hingehauen...

    Gruz Dan



  • nimmt nicht ein konstruktor von einem dialog einen parent entgegen ?? <- denke schon.

    ausserdem kannste invalidate auf einzelne controls aufrufen -> somit nicht unbedingt auf ganze dialoge !

    ruf doch "OnCancel" vom dialog auf <- sollte sich schliessen !



  • @foo_bar:
    Thanks für die Antwort...
    Habe ich mir eigentlich auch gedacht...Aber den Paernt sollte ich doch mit GetParent() holen können, nicht?

    Da der zweite Dialog den ersten überdecken MUSS, muss ich alles neu zeichnen lassen, und ich öffne den zweiten Dialog ebenfalls nicht modal, dies bedeutet, dass ich das Dialogfeld nicht mit OnCancel schliessen darf, sondern da muss ich DestroyWindow() anwenden, da die Funktion EndDialog, welche bei OnCancel aufgerufen wird, sich nicht verträgt mit nicht modalen Dialogfeldern...


Anmelden zum Antworten