CDialog Objekt soll nicht immer im Vordergrund sein
-
Hallo,
ich habe in einer dialogfeldbasierenden Anwendung zwei Dialoge. Dialog1 erstellt Dialog2 mit Create() im OnInitDialog() und zeigt es auf Knopfdruck mit ShowWindow() an. Das Problem ist, dass Dialog2 immer über Dialog1 liegt, sodass Dialog1 nie Dialog2 überdecken kann, auch wenn es den Fokus hat. Wie könnte ich das erreichen? Ich danke schon mal.
Gruß
-
Hast du ein spezielles Flag gesetzt Topmost oder so in der Art?
-
Nein. Ich habe auch ziemlich viele Kombination in den Eigenschaften im Ressourcen-Editor ausprobiert. Es scheint einfach ein Standardverhalten der MFC zu sein.
-
zeige mal den ensprechenden Code, also dein Create usw. Was hast du da gemacht?
-
BOOL CDialog1::OnInitDialog() { CDialog::OnInitDialog(); m_dlg2.Create(IDD_DIALOG2, this); return TRUE; } void CDialog1::OnBnButton1() { m_dlg2.ShowWindow(SW_SHOW); }Ich bin kein blutiger Anfänger. Ich weiss, dass es das Standardverhalten ist und bisher hat es mich auch nicht gestört. Nur will es jetzt für eine aktuelle Aufgabe so einrichten, dass der aufgerufene Dialog in den Hintergrund tritt, falls der aufrufende Dialog den Fokus hat.
-
Hallo,
ich bin mir nicht sicher ob ich das richtig verstanden habe, wenn Du möchtest dass das aufrufende Dialog im Vordergrund bleibt, und das aufgerufene hinter ihm, dann
brauchst du nur// statt: m_dlg2.ShowWindow(SW_SHOW); // das hier zu nehmen: m_dlg2.ShowWindow(SW_SHOWMINNOACTIVE); // dieses bleibt hinter dem aufrufenden DlgJetzt bleibt das aufrufende Dialog im Vordergrund, und das neue hinter Ihm!
mfg
pixelEDIT: ich möchte noch hinzufügen das ich nicht this als 2 Parameter übergebe sondern GetDesktopWindow()