Dialogfenster nebengeordnet?



  • Hallo ich habe ein SDI Projekt und möchte ein Dialogfenter dazu erstellen:

    CMyDlg dlg;
    dlg.doModal();
    

    Das Problem ist aber das das Dialogfenster immer aktiv ist, um in meiner View arbeiten zu können muss das Dialogfenster schließen.

    Wie mache ich es das ich z.B auf meine View klicke und mein Dialogfenster inaktiv ist aber noch vorhanden? Und wenn man dann wieder in den Dialog klickt wird der aktiv?

    Ich hoffe ihr versteht was ich meine und könnt mir helfen.

    gruß DR



  • So zum Beispiel:

    CMyDlg.h

    CMyDlg dlg;
    

    CMyDlg.cpp

    CMyDlg::starteDlg()
    {
        if(dlg.m_hWnd == NULL)
        {
            dlg.Create(IDD_MyDialog);
            dlg.ShowWindow(SW_SHOW);
        }
    }
    

    nur so als Denkanstoß

    Gruß Matthias



  • Danke für deine Antwort aber ich glaube du verstehst mich falsch. Ich möchte dass das Dialogfeld immer angezeigt wird, aber nicht immer aktiv(im Vordergrund) ist.
    Wie z.B. das Suchen Fenster im Texteditor, oder der Taskmanager.

    Gibt es da irgendeine Einstellung etc. mit der man das bewerstelligen kann?



  • Danke für deine Antwort aber ich glaube du verstehst mich falsch

    ich denke du verstehst den code falsch.

    Wie z.B. das Suchen Fenster im Texteditor, oder der Taskmanager

    genau das bewirkt der code in verbindung mit dem thread

    allerdings fehlt bei Create ein parameter

    dlg.Create(IDD_MyDialog, this);



  • Achso, habs ausprobiert -> klappt immer noch nicht, das Dialogfenster öffnet sich kurz und schließt sich dann sofort wieder. 😮 😕

    Weder so:

    CMyDlg d;
    d.Create(IDD_MYDLG);
    d.ShowWindow(SW_SHOW);
    

    noch so:

    CMyDlg d;
    d.Create(IDD_MYDLG,this);
    d.ShowWindow(SW_SHOW);
    

    oder so:
    CMy

    CMyDlg d;
    if(d.m_hWnd==NULL)
    {
       d.Create(IDD_MYDLG);
       d.ShowWindow(SW_SHOW);
    }
    

    Habe sogar wie in dem anderen Thread Eigenschaft "Modales System" auf True gesetzt.
    Was kann ich tun?????



  • if(d.m_hWnd==NULL)
    verhindert nur das der dialog ein zweites mal geöffnet wird.

    & Systemmodal gibt deinem dialog die eigenschaft des taskmanager immer im vordergrund vor allen anderen anwendungen zu bleiben.

    weshalb dein dialog sich beendet kann ich so nicht sagen warscheinlich hast du irgendwo code stehn der den dialog beendet oder aber du hast fehlerhaften code im dialog der ihn ohne fehlermeldung crashen last.



  • Super vielen Dank, jetzt klappt alles.

    gruß DR


Anmelden zum Antworten