SDI : Ansichtsklasse -> CFormView



  • Hi ,
    ich habe in meinem Prog 2 FormView Dialogresourcen erstellt .
    Wie kann ich jetzt in das Ansichtsfenster unterschiedliche FormView Dialoge anzeigen ?



  • Hi!
    Probier mal:

    void CMainFrame::SwitchToView(int nView)
    {
        CView* pOldActiveView = GetActiveView();
        CView* pNewActiveView = (CView*) GetDlgItem(nView);
        if (pNewActiveView == NULL) {
            switch (nView) {
            case 1:
                pNewActiveView = (CFormView*) new CFirstView;
                break;
            case 2:
                pNewActiveView = (CFormView*) new CSecView;
                break;
            }
            CCreateContext context;
            context.m_pCurrentDoc = pOldActiveView->GetDocument();
            pNewActiveView->Create(NULL, NULL, WS_BORDER,
                CFrameWnd::rectDefault, this, nView, &context);
            pNewActiveView->OnInitialUpdate();
        }
        SetActiveView(pNewActiveView);
        pNewActiveView->ShowWindow(SW_SHOW);
        pOldActiveView->ShowWindow(SW_HIDE);
        pOldActiveView->SetDlgCtrlID(
            pOldActiveView->GetRuntimeClass() ==
            RUNTIME_CLASS(CFirstView) ? 1 : 2);
        pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
        RecalcLayout();
    }
    

    Du könntest noch mit enum die Viewbezeichnung vereinfachen!

    mfg mike


Anmelden zum Antworten