tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
633
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von DigitalRevolution
    DigitalRevolution DigitalRevolution ist offline Mitglied Bronze
    Registriert seit
    Jul 2006
    Ort
    Mühlhausen (Thüringen)
    Beiträge
    27
    Hallo ich arbeite an einem SDI Projekt mit VisualStudio 6. Ich möchte dabei zwischen verschiedenen Views wechseln:

    CMyMultiviewView und CNextView, wobei CMyMultiviewView das Standartview ist. CNextView ist eine eigene Klasse, abgeleitet von

    CView.

    Zum wechseln habe ich folgende Funktion geschrieben:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    void CMainFrame::SwitchView(void)
    {
        CView *pOldView;
        CView *pNewView;
        //pOldView->MessageBox("In Switch View");
     
        //Zeiger Auf aktives View holen
        pOldView=GetActiveView();
        //Zeiger auf das aktive View retten
        m_pCFirstView=pOldView;
     
        //Zweites View erstellen
        CRuntimeClass *pCR=RUNTIME_CLASS(CNextView);
        m_pCSecondView = static_cast<CView*>(pCR->CreateObject());
        //ID des Views ungleich AFX_IDW_PANE_FIRST setzen
        m_pCSecondView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW
                                 ,rectDefault,this,AFX_IDW_PANE_FIRST+1,NULL);
        
        pNewView = m_pCFirstView;
        
        //IDs austauschen
        int nChildID=pNewView->GetDlgCtrlID();
        pNewView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
        pOldView->SetDlgCtrlID(nChildID);
        
        //Zeiger auf das Dokument holen
        CDocument *pDoc= pOldView->GetDocument();
        
        //View mit Dokument verbinden
        pDoc->AddView(pNewView);
        pDoc->RemoveView(pOldView);
        
        //Aktives View dem Rahmenfenster mitteilen
        SetActiveView(pNewView);
        //Und Viewgröße neu berechnen
        
        RecalcLayout();
        //View anzeigen bzw. verbergen
        pNewView->ShowWindow(SW_SHOW);
        pOldView->ShowWindow(SW_HIDE);
        
    }

    Allerding bekomme ich immer einen Laufzeitfehler. Der Fehler tritt beim Verbinden der Views mit dem Dokument auf.

    Was mache ich falsch ? Bitte um Hilfe!

    gruß DR
     

  2. #2
    Avatar von DigitalRevolution
    DigitalRevolution DigitalRevolution ist offline Mitglied Bronze
    Registriert seit
    Jul 2006
    Ort
    Mühlhausen (Thüringen)
    Beiträge
    27
    Hat sich erledigt, es war mein Fehler: In zeile 19 muss es heißen:
    Code cpp:
    1
    
    pNewView=m_pCSecondView
    . ...

    Nun hat sich aber ein neuer Fehler aufgetan:
    Ich habe eine Klasse (CMyFormView, die von CFormView erbt) dem Projekt hinzugefügt. Wenn ich jetzt versuche
    Code cpp:
    1
    
    m_pCFormView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,rectDefault,this,AFX_IDW_PANE_FIRST+1,NULL);
    auszuführen erscheint folgender Compilerfehler:
    error C2248: 'CFormView::Create': Kein Zugriff auf protected Element, dessen Deklaration in der Klasse "CFormView" erfolgte.
    Ich habe schon alle Funktionen in meiner Klasse auf public gesetzt, der Fehler erscheint weiterhin. Und wenn ich die Funktion in der Klasse CFormView in afxext.h auf public setzte bekomme ich Linkerfehler (7stück...). Was kann ich tun
    gruß DR
     

Ähnliche Themen

  1. zwischen CellEditoren hin und her wechseln
    Von Christian030783 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 10.12.10, 14:33
  2. WPF / MVVM Zwischen verschiedenen Views Wechseln
    Von LosLegator im Forum .NET WPF & Silverlight
    Antworten: 2
    Letzter Beitrag: 28.09.10, 22:16
  3. [SWT] eclipse rcp keine borders zwischen Views innerhalbt einer Perspektive
    Von adoubleu im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 04.02.08, 21:11
  4. SSH + VB bzw. Zwischen 2 Programmen Wechseln
    Von Voonix im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 03.01.08, 13:36
  5. Drag- und DropListenerinteraktion zwischen zwei verschiedenen Views
    Von kaMii im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 03.12.07, 07:55