CFormView´s switschen



  • hi

    danke für die hilfe! aber ich bin noch recht neu auf diesem gebiet....
    leider sagt mir das garnix.... 😞

    danke



  • Schau mal bei Codeguru, du musst den view in der Doc switchen.

    code:

    BOOL CClassBuilderDoc::SwitchToView(CRuntimeClass *pNewViewClass)
    {
    
        CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
        CView* pOldActiveView = pMainWnd->GetActiveView();
    
        // If we're already displaying this kind of view, no need to go further.
        if (pOldActiveView->IsKindOf(pNewViewClass))
            return TRUE;
    
        CSplitterWnd* pSplitter = (CSplitterWnd *)pOldActiveView->GetParent();
        pOldActiveView = (CView*)pSplitter->GetPane(0,1);//damit er nicht den Falschen View Löscht
        int row= 0, col= 1;
        ASSERT(pSplitter->IsChildPane(pOldActiveView, row, col));
        CRect viewrect;
        pOldActiveView->GetWindowRect(&viewrect);
    
        // set flag so that document will not be deleted when view is destroyed
        m_bAutoDelete = FALSE;    
        // Delete existing view 
        pOldActiveView->DestroyWindow();
        // set flag back to default 
        m_bAutoDelete = TRUE;
    //  row = 0;
    //  col = 1;
        // Create new view                      
        CCreateContext context;
        context.m_pNewViewClass = pNewViewClass;
        context.m_pCurrentDoc = this;
        context.m_pNewDocTemplate = this->GetDocTemplate();
        context.m_pLastView = pOldActiveView;
        context.m_pCurrentFrame =NULL;// pMainWnd->GetActiveFrame();
        if (!pSplitter->CreateView(row, col, pNewViewClass, viewrect.Size(), &context))
            return FALSE;
    
        // Set active 
        CMainView* pNewView = (CMainView *)pSplitter->GetPane(row, col);
        pSplitter->GetParentFrame()->SetActiveView(pNewView);
    
        pSplitter->RecalcLayout(); 
        pNewView->SendMessage(WM_PAINT); 
        return TRUE;
    }
    

    Devil



  • CFormView´s switschen

    Was für eine Rechtschreibung!



  • @Duden..... *lol* - ups 🙂

    @devil81

    danke, ich hoffe,das bringt mich weiter, ich versuch es mal!

    danke für deine mithilfe!!

    danke



  • hi

    einen kleinen fehler hab ich noch, dann hab ich es entlich geschafft:

    wenn ich das programm starte, startet es meine 2 dialogfelder am anfang nicht (passworteingabe und so ein introdialog)

    statt dessen kommt dieses bild:
    http://bilder.internetsuccess.at/fehler.jpg

    vielleicht hat jemand ne idee!? denn er soll IMMER Outbar öffnen, automatisch!

    danke
    ciao



  • Quellcode ?



  • BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
        if (!wndSplitter.CreateStatic(this, 1, 2))
            return false;
    
    //  wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CTestView1),  CSize(10,10),pContext);
    
        m_Benutzer = wndSplitter.AddView(0, 1, RUNTIME_CLASS(CSheetBenutzer), pContext);
        m_Benutzergruppen = wndSplitter.AddView(0, 1, RUNTIME_CLASS(CSheetBenutzergruppen), pContext);
        m_Benutzerrechte = wndSplitter.AddView(0, 1, RUNTIME_CLASS(CSheetBenutzerrechte), pContext);
    
        DWORD dwf = CGfxOutBarCtrl::fDragItems|CGfxOutBarCtrl::fEditGroups|CGfxOutBarCtrl::fEditItems|CGfxOutBarCtrl::fRemoveGroups|
                    CGfxOutBarCtrl::fRemoveItems|CGfxOutBarCtrl::fAddGroups|CGfxOutBarCtrl::fAnimation//;
                    |CGfxOutBarCtrl::fSelHighlight;
    
        wndBar.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), &wndSplitter, wndSplitter.IdFromRowCol(0, 0), dwf);
        wndBar.SetOwner(this);
    

    ich denke, irgendwo da ist das problem, oben beim auskommentierten zeug



  • Wo rufst du den Dialog auf und welche Daten gibt er zurück ?

    Devil



  • ups 😞 das ist mir jetzt aber peinlich *rot werd*

    doch, die 2 dialoge funktionieren jetzt! 🙂

    aber das fenster http://bilder.internetsuccess.at/fehler.jpg kommt noch immer!

    das ist deshalb, weil ich am anfang schon ALLE fenster (CFormView´s zum switchen im rechten frame) lade bzw erzeuge....



  • danke danke für eure hilfen!!!!

    es hat sich erledigt!!
    ein freunt hat mir nen tipp gegeben!!!
    es war nur ne kleinigkeit!

    danke an allen helfern!


Anmelden zum Antworten