MFC MDI Anfängerproblem



  • Hallo bisher habe ich mit meinem Anfängen in MFC nur kleine SDI Programme erstellt.

    Nun wollte ich mir ein MDI erstellen doch musste feststellen das ich es nicht so recht begreife wie ich ein zweites selbst erstelltes Frame / Dialog in dem MDI Parent laden kann.

    Der Anwendungsassistent hat mir in der InitInstance folgendes geschrieben.

    BOOL CMDIAMApp::InitInstance()
    {
    	AfxEnableControlContainer();
    
    	// Standardinitialisierung
    	// Wenn Sie diese Funktionen nicht nutzen und die Größe Ihrer fertigen 
    	//  ausführbaren Datei reduzieren wollen, sollten Sie die nachfolgenden
    	//  spezifischen Initialisierungsroutinen, die Sie nicht benötigen, entfernen.
    
    #ifdef _AFXDLL
    	Enable3dControls();			// Diese Funktion bei Verwendung von MFC in gemeinsam genutzten DLLs aufrufen
    #else
    	Enable3dControlsStatic();	// Diese Funktion bei statischen MFC-Anbindungen aufrufen
    #endif
    
    	// Ändern des Registrierungsschlüssels, unter dem unsere Einstellungen gespeichert sind.
    	// ZU ERLEDIGEN: Sie sollten dieser Zeichenfolge einen geeigneten Inhalt geben
    	// wie z.B. den Namen Ihrer Firma oder Organisation.
    	SetRegistryKey(_T("Local AppWizard-Generated Applications"));
    
    	LoadStdProfileSettings();  // Standard INI-Dateioptionen laden (einschließlich MRU)
    
    	// Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen
    	//  dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten.
    
    	pDocTemplate = new CMultiDocTemplate(
    		IDR_MDIAMTYPE,
    		RUNTIME_CLASS(CMDIAMDoc),
    		RUNTIME_CLASS(CChildFrame), // Benutzerspezifischer MDI-Child-Rahmen
    		RUNTIME_CLASS(CMDIAMView));	
    	AddDocTemplate(pDocTemplate);
    
    	//	AddDocTemplate(m_pDocTemplate);
    	// Haupt-MDI-Rahmenfenster erzeugen
    		CMainFrame *pMainFrame = new CMainFrame;
    	if (!pMainFrame->LoadFrame(IDR_MDIAMTYPE))
    		return FALSE;
    	m_pMainWnd = pMainFrame;
    
    	// Befehlszeile parsen, um zu prüfen auf Standard-Umgebungsbefehle DDE, Datei offen
    	CCommandLineInfo cmdInfo;
    	ParseCommandLine(cmdInfo);
    
    	// Verteilung der in der Befehlszeile angegebenen Befehle
    	if (!ProcessShellCommand(cmdInfo))
    		return FALSE;
    
    	// Das Hauptfenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
    	pMainFrame->ShowWindow(m_nCmdShow);
    	pMainFrame->UpdateWindow();
    
    	return TRUE;
    }
    

    Die CMDIAMDoc klasse wurde von der CDocument klasse abgeleitet
    Die CChildFrame klasse wurde von der CMDIChildWnd klasse abgeleitet
    Die CMDIAMView klasse wurde von der CFormView klasse abgeleitet

    Wenn ich ein zweites mal ein AddDocTemplate ausführen lasse dann fragt das Programm mich am Anfang welches Fenster im MDI Parent öffnen soll.

    Mein Ziel ist es im angegebenen Menü oben am MDI fenster auf den button "Artikel anlegen" zu klicken und das sich ein Artikel Form öffnet. Oder zum bearbeiten.

    Könnte mir da jemand bei helfen?

    Habe bisher MDI in VB gemacht nur dort ist es ja eh mehr Klickbunti 🙂


Anmelden zum Antworten