Fenster im Hintergrund



  • Hallo Leute.
    Ich denke ich habe mal ein recht einfachesProblem.

    Ich möchte einen Dialog (nicht Modal) immer im Hintergrund gezeigt bekommen.

    Kurze Beschreibung:
    Im Fenster worum es geht befindet sich ein ListClontrol.
    Ich kann von diesem Fenster aus 6 verschiedene weitere Dialog bzw Toolfenster öffnen. Diese sollen immer auf dem anderen (ListClontrol)Fenster drauf liegen, auch wenn ich das Fenster bearbeite.

    Da gibt es doch sicher irgendeine einfache Möglichkeit, die ich einfach nicht finde.



  • Ich habe zwar eine Lösung, aber eine andere wär mir eigentlich lieber, da ich es Benutzerabhängig ändern möchte.

    Meine Lösung wäre ein Häckchen in den Weiterten Dialogfeld Formaten bei Systemmodal.

    Hätte ger eine Alternative.



  • Servus,

    du möchtest einen Dialog "Nicht-Modal" aufrufen. Dann geht das wie folgt:

    Bsp. mit einer Klasse für den Dialog
    1. Klasse anlegen vom Typ CDialog.
    2. Im der zu nutzenden Datei die Klasse erkenntlich machen:
    DeinPrj.cpp

    #include "DeinDlg.h"
    

    3. Aufruf des Dialoges:

    CTestDlg* pWnd = new CTestDlg();
    pWnd->Create(IDD_TESTDLG);
    pWnd->ShowWindow(SW_SHOW);
    

    So funzt es 😃

    *winke*
    Hellsgore



  • Darauf kommt es mir nicht an. Das bekomm ich auch hin , aber danke

    Ich möchte einen Dialog immer im Hintergrund gezeigt bekommen.

    Das ist mir wichtig 😉



  • Servus,

    im Hintergrund von was? Von welchem Dialog? Von deinem Haupt?

    oder rufst du von einem "Nicht-Modalen" Dlg wieder einen "Nicht-Modalen" Dlg auf und möchtest dann den 2ten immer über den ersten liegen haben?

    *winke*
    Hellsgore



  • Hellsgore schrieb:

    oder rufst du von einem "Nicht-Modalen" Dlg wieder einen "Nicht-Modalen" Dlg auf und möchtest dann den 2ten immer über den ersten liegen haben?

    Genau das!!! 😉



  • Was nu?
    Keine Idee?

    Nochmal das Problem:
    Ich rufe von einem "Nicht-Modalen" Dlg wieder einen "Nicht-Modalen" Dlg auf und möchte dann den 2ten immer über den ersten liegen haben?

    Verstanden? Oder bin ich mal wieder zu kompliziert 😕



  • Könnte vielleicht mit SetForegroundWindow() klappen.



  • Nö.
    Klappt leider nicht.
    Noch eine Idee?



  • Mach doch keine Hektik.......

    CTestDlg2* pWnd = new CTestDlg2();
    pWnd->Create(IDD_TESTDLG2, this); //ACHTE AUF DAS THIS DER ZEIGT AUF CTESTDLG1
    pWnd->ShowWindow(SW_SHOW);
    

    Wenn du aus deinem Dialog den zweiten nicht modalen Dlg aufrufst, dann musst du ihm als ElternDlg den Zeiger des aufrufenden Dialoges geben.

    CTestDlg -> CTestDlg1 -> CTestDlg2

    und schon hast du das was du wolltest 😃

    *winke*
    Hellsgore



  • Achso.
    Alles klar. Danke.

    (Sorry, wollte keine Hektik verbreiten!!)


Anmelden zum Antworten