"We are back" « oc.at

Probleme mit MFC: GetDocument/Invalidate

LakeBodom 20.05.2003 - 15:50 820 7
Posts

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
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
Avatar
Registered: May 2002
Location: Tal der Könige
Posts: 1478
Wo erstellst du deine "selbst gebastelten" Funktionen ?
In der CRectelli2View ?
Hast du sie als Methoden der Klasse hinzugefügt ?

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
1. Mach dir ein

CRectelli2Doc* CRectelli2View::GetDoc()
{ return (CRectelli2Doc*) GetDocument(); }

2. Klassenname vergessen?

Vivo

Dreamworker
Avatar
Registered: May 2002
Location: Tal der Könige
Posts: 1478
Zitat von that
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
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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
Avatar
Registered: May 2002
Location: Tal der Könige
Posts: 1478
Zitat von Ringding
Man muss nicht mehr casten.
Warum casten, die Standard GetDocument Funktion sieht doch bereits so aus :
Code:
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
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von Vivo
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
Registered: Jul 2002
Location: AT
Posts: 7808
Zitat von that
2. Klassenname vergessen?

mhm, das wars. :bash: Sorry & thx ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz