Dialog bleibt im Hintergrund
-
Hallo,
folgendes Problem: Ich habe einen Dialog
class CMyDlg: public CDialog { std::vector<CMyExtDlg *> extendDlg; }der wiederrum andere Dialoge startet, was ich wie folgt mache
extendDlg[i] = new CMyExtDlg (); extendDlg[i] -> Create(DIALOG_ID,NULL); extendDlg[i] -> ShowWindow(SW_SHOW);das ganze klappt soweit auch gut. Einziges Problem ist jetzt das die extenDlg Dialoge immer im Vordergrund sind und das ich die CMyDlg Instanz nicht mehr in den Vordergrund holen kann.
Hat jemand nen Tipp / Lösung für mich?
LG
-
Sind die Dialoge Modal?

-
Nein?
-
Ist CMyDlg Dein Main Window?
Dasnn wird das nciht gehen, dennpParentWnd
Points to the parent window object (of type CWnd) to which the dialog object belongs. If it is NULL, the dialog object's parent window is set to the main application window.
-
Ja CMyDlg ist das Main Window aus em ich mehrere andere Dlg starten möchte.
Gibts denn ne andere Möglichkeit?
-
Das Problem ist die besondere Behandlung wenn pParentWnd NULL ist , kannst Du selber im Source nachsehen:
CDialog::CreateIndirectDu kannst das nur umgehen in dem Du die Lowlevel-Routine CreateDlg verwendest!
-
hm das hört sich nicht so toll an

-
sirchillalot schrieb:
hm das hört sich nicht so toll an

Was ist Dein Problem? Verwende statt Create CreatDlg!
-
CreateDlg scheint protected zu sein
error C2248: "CWnd::CreateDlg": Kein Zugriff auf protected Member, dessen Deklaration in der CWnd-Klasse erfolgte.
-
Dann implemetiere in Deiner Klasse eine Funktion, die diese Funktion ausführt.
-
Klar wieso komm ich nicht selbst darauf.
Besten Dank geht jetzt.