Neues Hauptfenster mit CreateNewFrame() erzeugen.



  • Hello.

    I have a Multi-Top-Level-Documents based application.

    After a button click, the application should create a new main frame based on a new doc-template.

    The message handler:

    void CDesktopChatMessengerView::OnClicked()
    {
    	theApp.NewFrame();	
    }
    

    The function:

    void CDesktopChatMessengerApp::NewFrame()
    {
    	CMultiDocTemplate* pContactDocTemplate;
    	pContactDocTemplate = new CMultiDocTemplate(
    		IDR_MAINFRAME,
    		RUNTIME_CLASS(CDesktopChatMessengerContactDoc),
    		RUNTIME_CLASS(CMainFrame),      
    		RUNTIME_CLASS(CDesktopChatMessengerContactView));
    	m_pDocTemplate = pContactDocTemplate;
    	AddDocTemplate(pContactDocTemplate);
    
    	CDocument* pDoc = NULL;
    	CFrameWnd* pFrame = NULL;
    
    	pDoc = m_pDocTemplate->CreateNewDocument();
    	pFrame = m_pDocTemplate->CreateNewFrame(NULL, NULL);
    		if (pFrame != NULL)
    		{
    			// Set the title, and initialize the document.
    			m_pDocTemplate->SetDefaultTitle(pDoc);
    
    			m_pDocTemplate->InitialUpdateFrame(pFrame, pDoc, TRUE);
    		}
    
    	pFrame->ShowWindow(SW_SHOW);
    	pFrame->UpdateWindow();
    
            //Close login_window
    	m_pMainWnd->DestroyWindow();
    }
    

    There's no error while compiling, and also no runtime errors, but the new frame is not displayed. Why?
    The current main frame is closed succesfull.

    A-jage


  • Mod

    Wird das Frame-Window erzeugt und ist im Spy++ sichtbar. Ist evtl. die Fenster-Hierarchy falsch? Kontrolliere die Fenster-Stileim Spy++!


Anmelden zum Antworten