dialoge nicht nur modeless



  • hi

    ich möchte, dass mein dialog nicht nur modeless ist,
    sondern auch in den hintergrund rückt, wenn ein anderes fenster angewählt wird.

    im prinzip geht es darum, dass ich in einem existierenden MDI programm mittels plugins dialoge aufrufen möchte. in einem dieser dialoge sollen andere MDIs dieser anwendung angeordnet werden können, deshalb muss der dialog in den hintergrund.

    ich habe schon CreateIndirect probiert und auch Setwindowpos.
    ersteres hat eigentlich nur den effekt, dass das fenster nicht modal ist.
    letzters verschiebt die ganze anwendung in den hintergrund ...

    danke für tipps
    chris



  • HÄ?

    Nu nlangsam....nicht modale Fenster rücken imemr in den Hintergrund. Modale nicht.

    im prinzip geht es darum, dass ich in einem existierenden MDI programm mittels plugins dialoge aufrufen möchte. in einem dieser dialoge sollen andere MDIs dieser anwendung angeordnet werden können, deshalb muss der dialog in den hintergrund.

    Kannst Du das mal für "Opfer" erklären? Also Du willst Mdis in einem MDIs öffnen? Oder meinst Du "Childs"? Du willst weiterhin "Dialoge" öffnen und darin Childs öffnen?

    Also ich verstehe das so:

    [MDI = parent]
    --->[Child1]
    --->[Child2]
    --->[Child3]
    -Dialog1 = modal?
    --->[Subchild4]

    Oder willst Du direkt mehere MDI Trägerfenster öffnen?

    Ocrana



  • ja du siehst das schon richtig.
    der dialog soll ein child sein und die anderen childfenster sollen den dialog überlappen können.

    ich erzeuge das fenster zu zeit so:

    DMtoPDFdlg *pDialog = new DMtoPDFdlg();
    CDialogTemplate dlt;
    
    // load dialog template
    if (!dlt.Load(MAKEINTRESOURCE(IDD_DMTOPDFDLG_DIALOG))) return;
    
    // display dialog box
    pDialog->CreateIndirect(dlt.m_hTemplate,NULL); 
    pDialog->ShowWindow(SW_SHOW);
    

    anschliessend setze ich beim initdialog-event den dialog als
    child des MainFrame.

    das fenster ist zwar nicht modal in dem sinn, dass man nicht woanders hinklicken kann, aber es geht eben nicht in den hintergrund :(.

    grüsse
    chris


Anmelden zum Antworten