MDI, 2 ChildWindows mit verschiedenen Größen anzeigen ?
-
Hi,
ich habe eine MDI Anwendung erstellt und lasse mir per Klick im entsprechenden Menue der Toolbar ein 2. Fenster erstellen. Beide Fenster haben die gleichen Maße.
Nun möchte ich aber dass das 1. fenster, das zusammen mit dem Start des ganzen Projektes erstellt wird z.B. 100, 100 hat und das 2. z.B. 150,50.Wenn ich in der PreCreate - Funktion von ChildFrm.cpp das Createstuct äandere, z.B.
cs.cx = 100,
so bezieht sich das auf beide Child Fenster
!Hier mal der Code zum erstellen des 2. Childs aus der MainFrm:
void CMainFrame::OnWindowNewTree() { CMDIChildWnd *pActiveChild = MDIGetActive(); CDocument *pDocument; if (pActiveChild == NULL || (pDocument = pActiveChild->GetActiveDocument())== NULL) { TRACE ("Warnung: Kein actives Dokument für WindowNew vorhanden\n"); AfxMessageBox(AFX_IDP_COMMAND_FAILURE); return; } CDocTemplate *pTemplate = ((CTestMDI_1App*)AfxGetApp())->m_pTemplateTree; ASSERT_VALID(pTemplate); CFrameWnd *pFrame = pTemplate->CreateNewFrame(pDocument, pActiveChild); if (pFrame == NULL) { TRACE("Warnung: Neuer rahmen konnte nicht erstellt werden\n"); AfxMessageBox(AFX_IDP_COMMAND_FAILURE); return; } pTemplate->InitialUpdateFrame(pFrame, pDocument); }und hier die Ergänzugen der InitInstance in der Cpp des Hauptprojektes:
m_pTemplateTree = new CMultiDocTemplate( IDR_TESTMDTYPE, RUNTIME_CLASS(CTestMDI_1Doc), RUNTIME_CLASS(CChildFrame), // Benutzerspezifischer MDI-Child-Rahmen RUNTIME_CLASS(CShellTreeView));Vielen Dank für eure Hilfe vorab

Gruß
ShadowEater
-
Und warum machst Du es nicht einfach mit dem pFrame Zeiger und MoveWindow nachdem Du das Frame erzeugt hast?
-
Danke Martin
,es klappt, kannst Du mir auch sagen wie ich das Programm mit mehreren Childs gleichzeitig starte also etwa 3, 4, 5 oder sogar 6?
Gruß
ShadowEater
-
Entweder baust Du Dir einen internen Zähler ein, oder Du enumerierst einfach im DocTemplate das Doc und darin die Views. Dann kannst Du zählen wieviele Items schon vorhanden sind.
Wie man einen neuen View erzeugt weist Du ja schon!
-
Danke Martin,

werds so versuchen !
Gruß
Markus