Probleme mit MFC: GetDocument/Invalidate
LakeBodom 20.05.2003 - 15:50 820 7
Bodominjaervi
OC Addicted
|
Habe zwei arge Probleme mit der MFC.
Klar ist, dass ich die Daten im Document gespeichert habe. Mein Programm heisst rectelli2. Also müsste ich in der View mittels CRectelli2Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); mit dem pDoc->Zeiger auf die Daten zugreifen können. Nur bekomm ich die Fehlermeldung: "GetDocument" Nicht deklarierter Bezeichner, 'int' kann nicht in 'class CRectelli2Doc*' konvertiert werden.
Das passiert aber nur bei selbst definierten Funktionen. Muss ich den Funktionen einen weiteren Parameter übergeben oder wo könnte sonst das Problem liegen?
2. Problem:
Wenn ich in den selbst gebastelten Funktionen Invalidate(); aufrufen will (zum Neuzeichnen), kommt wieder eine Fehlermeldung: Nicht deklarierter Bezeichner. Er zeigt mir aber die Hilfe an, wenn ich Invalidate schreibe. Wo könnte da das Problem liegen? Plz help & tia
|
Vivo
Dreamworker
|
Wo erstellst du deine "selbst gebastelten" Funktionen ? In der CRectelli2View ? Hast du sie als Methoden der Klasse hinzugefügt ?
|
that
Hoffnungsloser Optimist
|
1. Mach dir ein
CRectelli2Doc* CRectelli2View::GetDoc() { return (CRectelli2Doc*) GetDocument(); }
2. Klassenname vergessen?
|
Vivo
Dreamworker
|
CRectelli2Doc* CRectelli2View::GetDoc() { return (CRectelli2Doc*) GetDocument(); } hmmm ... versteh ich nicht wofür das ist, die GetDocument Funktion ist doch eine Methode der CRectelli2View somit ergibt das für meinen begrenzten Verstand keinen Vorteil ... Bitte untertänigst um Erklärung
|
Ringding
Pilot
|
Man muss nicht mehr casten.
@LakeBodon: Wenn der Compiler was nicht kennt, was er eigentlich kennen sollte, hast du meistens das entsprechende include File vergessen.
|
Vivo
Dreamworker
|
Man muss nicht mehr casten. Warum casten, die Standard GetDocument Funktion sieht doch bereits so aus : CRectelli2Doc* CRectelli2View::GetDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRectelli2Doc)));
return (CRectelli2Doc*)m_pDocument;
}
Für mich ergibt das dann überhaupt keinen Sinn...
|
that
Hoffnungsloser Optimist
|
Für mich ergibt das dann überhaupt keinen Sinn... Jetzt hab ich nachgeschaut (hab extra die Win2k Kiste aktiviert), und du hast recht. Ich ziehe also meine Aussage zurück und behaupte das Gegenteil.
|
Bodominjaervi
OC Addicted
|
2. Klassenname vergessen? mhm, das wars. ![:bash:](/images/smilies/bash.gif) Sorry & thx
|