ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
633
633
EMPFEHLEN
-
26.09.06 16:51 #1
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
-
27.09.06 14:11 #2
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
auszuführen erscheint folgender Compilerfehler:Code cpp:1
m_pCFormView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,rectDefault,this,AFX_IDW_PANE_FIRST+1,NULL);
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
-
zwischen CellEditoren hin und her wechseln
Von Christian030783 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 10.12.10, 14:33 -
WPF / MVVM Zwischen verschiedenen Views Wechseln
Von LosLegator im Forum .NET WPF & SilverlightAntworten: 2Letzter Beitrag: 28.09.10, 22:16 -
[SWT] eclipse rcp keine borders zwischen Views innerhalbt einer Perspektive
Von adoubleu im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 04.02.08, 21:11 -
SSH + VB bzw. Zwischen 2 Programmen Wechseln
Von Voonix im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 03.01.08, 13:36 -
Drag- und DropListenerinteraktion zwischen zwei verschiedenen Views
Von kaMii im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 03.12.07, 07:55





Zitieren
Login






