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


  • Mod

    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


  • Mod

    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


Anmelden zum Antworten