SwordMaster Geschrieben 26. Oktober 2003 Geschrieben 26. Oktober 2003 hallo leute hab in meinem MainFenster ein zweites fenster mit create aufgerufen m_Speiseplan = new CSpeiseplan(); if(m_Speiseplan != NULL) { BOOL ret = m_Speiseplan->Create(IDD_SPEISEPLAN,m_Speiseplan); if(!ret) AfxMessageBox("Fehler beim Erzeugen des Dialogs"); m_Speiseplan->ShowWindow(SW_SHOW); } else AfxMessageBox("Fehler beim Erzeugen des Dialog-Objekts"); und dieses zweite fenster ruft wiederum ein drittes fenster mit DoModal auf, eigentlich hätte ich mir gewünscht dass DoModal entweder das erste UND das zweite fenster deaktiviert oder nur das zweite. ABER: es wird NUR das erste=Hauptfenster deaktiviert, obwohl diese klasse das DoModal gar nicht aufgerufen hat.... Hab ich was falsch gemacht? MFG SwordMaster Zitieren
Guybrush Threepwood Geschrieben 26. Oktober 2003 Geschrieben 26. Oktober 2003 Ich glaube dein zweites Fenster (Speiseplan?) ist kein Child deines Hauptfensters das dritte Fenster aber schon. Bei Create() müßtest du eigentlich noch ein Parent Window angeben können. Zitieren
SwordMaster Geschrieben 27. Oktober 2003 Autor Geschrieben 27. Oktober 2003 ja der zweite Parameter von create wär das Parent fenster mein aufruf lautet ja m_menueverwaltung->Create(IDD_MENUEVERWALTUNG,m_menueverwaltung); wenn ich jetzt m_menueverwaltung->Create(IDD_MENUEVERWALTUNG,this); schreiben würde, und dann DoModal aufrufen würde, dann wären die ersten beiden fenster deaktiviert.... das problem beim aufruf mit "this" ist, dass das ParentFenster dann zwar nicht deaktiviert ist, aber es ist IMMER hinter dem zweiten fenster.... und das nervt, ich wollte eignetlich schon ganz normal die fenster wechseln können, so dass das aktive fenster immer im fordergrund ist giebts sonst noch einen weg? MFG SwordMaster Zitieren
Guybrush Threepwood Geschrieben 27. Oktober 2003 Geschrieben 27. Oktober 2003 Klar gibt`s andere Wege und es dauert <1 Minute die in der MSDN nachzuschauen Du könntest z.B. bevor du die Messagebox anzeigst die Fenster selber deaktivieren und danach wieder aktivieren. CWnd::EnableWindow(); Gruß Guybrush Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.