Dialog-Fenster beim Draufklicken in den Vordergrund

Abbreviation

Mitglied
Hallo!

Mein Problem:
Ich habe eine dialogbasierte Anwendung gebastelt, die ein neues Fenster öffnet.
Dieses ist dann automatisch im Vordergrund. Wenn ich wieder in das Haupt-Dialogfenster klicke, bleibt allerdings das andere Fenster immer noch im Vordergrund, das würde ich gerne ändern.

Ich hab schon einiges an (mehr oder weniger zufälligen) Fundstücken aus der MSDN ausprobiert, aber es hat bisher alles nichts gebracht. Ich bin immerhin auf OnMouseActivate gestoßen, was mir richtig zu sein scheint, aber SetFocus(); SetForegroundWindow(); BringWindowToTop(); scheint nicht die gesuchte Funktion zum gesuchten Moment zu sein.

Leider fehlt mir auch noch ein (großes) bisschen der Überblick, was es so alles tolles gibt... Es wär toll, wenn jemand mir einfach einen kleinen (oder großen) Hinweis geben könnte....

Dankeschön!

Marei
 
Mit welchem Befehl machst du denn den zweiten Dialog auf?

Wenn er modal geöffnet (DoModal bei MFC, DialogBox bei Win32API) ist, muss der erst beendet werden, damit der Hauptdialog wieder arbeiten kann.

Ansonsten, wenn der andere partout obenauf bleibt, hat er vermutlich TopMost gesetzt. Das kann man unter MFC mit ModifyStyleEx und unter Win32 mit SetWindowLong (GWL_EX_STYLE) entfernen.
 
Danke.

Das hab ich auch schon beides abgehakt: Modal isser nicht, und ich hab in der Ressource nicht angeklickt, dass er im Vordergrund sein soll, dann dürfte er doch eigentlich auch nirgends anders TopMost gesetzt haben.
:(

Danke trotzdem :)

MfG
Marei
 
Hallöchen,

könnte es vielleicht daran liegen, dass das Fenster, das geöffnet wird ein Dialog ist? Macht das einen Unterschied? Ansonsten hab ich nämlich eigentlich alle Möglichkeiten ausprobiert... (mir doch egal,was Murphy dazu sagt ;) )

Grüßle
Marei
 
Wie hast du denn den zweiten Dialog geöffnet?

Mit DialogBox oder mit CreateDialog?

DialogBox macht den Dialog automatisch modal, während CreateDialog diesen modeless öffnet.
 
Ach ja, MFC. Das sollte den eigentlich modeless öffnen.

Reagiert der HauptDialog drunter bis auf das Im-Hintergrund-Bleiben ansonsten auf die Maus/Tastatur?

Ist an dem neuen Dialog evtl. irgendwas drin, das bei OnActivate oder Ähnlichem etwas bewirkt? Hier vielleicht prüfen, ob innerhalb dieser Funktionen auch die Basisklasse aufgerufen wird (CDialog::xxx).

Sind bei dem neuen Dialog irgendwelche seltsamen Stile gesetzt?
 
Also:

1. Der Hauptdialog reagiert so wie er soll (nur, dass er halt im Hintergrund bleibt

2. Für OnActivate hab ich speziell nix, aber bei allen sonstigen On... s hab ich immer schön die CDialog::On... aufgerufen

3. Was wären denn seltsame Styles?
Ich hab nur gesetzt, dass es sichtbar sein soll, und ein Systemmenü haben soll (sind ja scheinbar die Vergrößern/Verkleinern/Schließen - Kästchen oben rechts)

Ansonsten hab ich bei OnInitDialog noch einen Thread aufgemacht, der nebenher immer einen Ordner überwachen soll, könnte das vielleicht ein Problem sein?

Danke dir
Marei

PS: OnMouseActivate ist auch eigentlich ein guter Moment, oder?
 
Zuletzt bearbeitet:
OnMouseActivate auch, ja. Aber wenn du das nicht per Hand überschreibst, geht das von selbst an die Basisklasse.

Wäre es denn möglich, dein Projekt nur mit den beiden Dialogen drin hier zu posten? Dann kann ich's direkt ausprobieren und dann findet sich das Problem bestimmt schnell.
 
Hallöchen,
ich hab den Code einfach mal in ein Zip gepackt, ich hoffe, das ist okay so
(ansonsten bitte ich vielmals um Verzeihung)

MfG
Marei

PS: Sind nur die beiden Dialoge drin
PPS: *räusper* jetzt ist dann auch der Anhang dran...
 

Anhänge

  • dialoge.zip
    10,5 KB · Aufrufe: 22

Neue Beiträge

Zurück