DoModal: Aufrufenden Dialog verstecken, geht das?



  • Hallo allerseits!

    Ich würde gerne den aufrufenden Dialog bei einem modal aufgerufenem Tochter-Dialog solange verstecken, bis der Tochterdialog geschlossen ist.

    Wenn ich innerhalb des aufrufenden Dialogs seine Objektvariable hätte, wäre das ja kein Problem:

    void Eventfunktion()
    {
        aufrufenderDlg.ShowWindow(SW_HIDE);
        if (tochterDlg.DoModal() == IDOK)
        {
            ...
        }
        aufrufenderDlg.ShowWindow(SW_SHOW);
    }
    

    aber diese Variable kenne ich zumindest nicht.

    Lässt sich da was machen?

    Danke und Gruß!



  • Ich geh davon aus, das dein Haupt Dialog der Dialog ist der das Fenster aufruft:

    BOOL CChildDlg::OnInitDialog(void)
    {
        AfxGetMainWnd()->ShowWindow(SW_HIDE);
        return TRUE;
    }
    

    Und sonnst schreib einfach den Konstruktor entsprechend um...



  • Danke schön, das klappte 🙂 und auch das Wiedereinblenden ist kein Problem.

    Allerdings:
    Das Programm verschwindet solange ganz aus der Taskleiste, was auch nicht ganz in meinem Sinne ist.
    Kann man da etwas machen?

    Danke und Gruß!



  • Guck dir einfach mal die verschiedenen möglichen Parameter von ShowWindow an 😉 SW_MINIMIZE odg. sollte die Lösung sein...



  • (D)Evil schrieb:

    SW_MINIMIZE odg. sollte die Lösung sein...

    Ist es nicht, damit ist der Tochterdialog nämlich auch gleich minimiert.
    Naja, ich guck mal, danke!


Anmelden zum Antworten