mehrere Dialoge versetzt öffnen
-
Ich rufe im Moment eine Dialog mit DoModal auf.
Ich wollte aber gerne den Dialog in einer Schleife 5 mal gleichzeitig öffnen lassen, nur leider geht das mit DoModal nicht da er ja immer auf die Antowrt von dem Dilaog den ich in der schleife geöffnet habe wartet bevor es weiter geht.
Edit von estartu: Habe den Betreff geändert
-
Ups Falsche Überschrift
Tinchen schrieb:
Ich rufe im Moment eine Dialog mit DoModal auf.
Ich wollte aber gerne den Dialog in einer Schleife 5 mal gleichzeitig öffnen lassen, nur leider geht das mit DoModal nicht da er ja immer auf die Antowrt von dem Dilaog den ich in der schleife geöffnet habe wartet bevor es weiter geht.
-
Versuch es mal mit einem Nicht-Modalen-Dialog.
mDialog.Create(IDD_DIALOG, this); mDialog.ShowWindow(SW_SHOW);
-
Hab es jetzt mal so Probiert leider führte das auch nicht zum erfolg der Dialog wird zwar kurz geöffnet geht aber sofort wieder zu.
void CLangweileDlg::OnOK()
{
CShout mDialog;
mDialog.Create(IDD_DLGShout, this);
for(int i=0;i<9;i++)
{
mDialog.ShowWindow(SW_SHOW);
}
}
-
Das kann nichts werden, da du deinen Dlg auf dem Stack erzeugst, und dieser am Ende der Methode OnOk Terminiert wird (also das Objekt wird zerstört. Außerdem wenn Du 5 Dlg haben willst, dann must Du auch 5 von diesen erstellen.
Eine Möglichkeit:
LangweileDlg.h class CLangweileDlg { ... CShout mDialog[5]; } LangweileDlg.cpp void CLangweileDlg::OnOK() { for(int i=0;i<5;i++) { mDialog[i].Create(IDD_DLGShout, this); mDialog[i].ShowWindow(SW_SHOW); } }
Oder das ganze als Zeiger mit new erstellen.
Gruß Matthias