Probleme mit MFC: GetDocument/Invalidate

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/probleme_mit_mfc_getdocument_invalidate_79351/page_1 - zur Vollversion wechseln!


Bodominjaervi schrieb am 20.05.2003 um 15:50

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 schrieb am 20.05.2003 um 17:31

Wo erstellst du deine "selbst gebastelten" Funktionen ?
In der CRectelli2View ?
Hast du sie als Methoden der Klasse hinzugefügt ?


that schrieb am 20.05.2003 um 21:38

1. Mach dir ein

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

2. Klassenname vergessen?


Vivo schrieb am 20.05.2003 um 22:35

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 schrieb am 21.05.2003 um 00:09

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 schrieb am 21.05.2003 um 00:15

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 schrieb am 21.05.2003 um 00:49

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 schrieb am 22.05.2003 um 13:45

Zitat von that
2. Klassenname vergessen?

mhm, das wars. :bash: Sorry & thx ;)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025