Variable in ein Fenster schreiben
-
Hi TaccoGo!
Also doc-view sagt mir nur in Verbindung mit CmyclassDoc und CmyclassView etwas. Die sind vom SDI-Assistenten angelegt worden.
Markus
-
Hallo TaccoGo, hier ich nochmal!
Ich habe nun in der Funktion:
void CmeinProjektView::OnDraw(CDC* pDC, cmeineVariable)
die Zeile:
pDC->TextOut(cmeineVariable);
eingegeben.
Nun gibt es folgendes gemopper:
error C2061: Syntaxfehler : Bezeichner 'cmeineVariable'
H:\My Projects\LadenSpeichern\LadenSpeichernView.cpp(66) : error C2065: 'm_cmeineVariable' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.Was habe ich falsch gemacht?
Markus
-
mstank schrieb:
Was habe ich falsch gemacht?
Ich tippe einfach mal auf einen ganz simplen Schreibfehler. Mal schreibst du meineVariable, mal cmeineVariable und mal m_cmeineVariable.
-
Hi isabeau!
Wie schaut das mit der Syntax aus? Stimmt die so?
In der Klasse myclass heißt die Variable char m_cmeineVariable und hat den Zugriff private.
In der Klasse CmeinPrjekt habe ich beide Variablen.
Markus
-
'm_cmeineVariable' : nichtdeklarierter Bezeichner
Das heisst, er kennt m_cmeineVariable an dieser Stelle nicht.
In der Zeile
void CmeinProjektView::OnDraw(CDC* pDC, cmeineVariable)
musst du ihm sagen, von welchem Typ cmeineVariable ist. So wie pDC vom Typ CDC* ist, muss vor cmeineVariable char oder CString oder was auch immer stehen. Das ist schon mal der erste Fehler. m_cmeineVariable kennt er dann aber immernoch nicht. Wenn das wirklich eine Membervariable ist (was das m_ vorneweg andeutet), dann fehlt dir zumindest
char m_cmeineVariable;
in der Headerdatei (falls es ein char ist).
-
in der Header-Datei CmeinProjekt.h ?
-
Hab grad nachgeschaut!
In der CmeinProjektView.h steht char m_cmeineVariable als private.
Markus
P.S.: Ich muß mal flink für ne Stunde weg. Bist du dann noch online?
-
mstank schrieb:
In der CmeinProjektView.h steht char m_cmeineVariable als private.
Fehlermeldung:
...*LadenSpeichernView.cpp*(66) : error C2065: 'm_cmeineVariable' : nichtdeklarierter Bezeichner
Er kennt sie nicht in der Klasse LadenSpeichernView. Wenn es tatsächlich eine Membervariable ist, fehlt sowas wie
char m_cmeineVariable;
in der Datei LadenSpeichernView.hmstank schrieb:
Bist du dann noch online?
Vermutlich nicht, aber sollten ja vielleicht noch andere Leute hier sein...
-
Hi isabeau!
Mit der *.h hast du recht! Werschreiben kann ist klar im Vorteil
Nun gibt es leider noch ein Problem mit OnDraw:
H:\My Projects\LadenSpeichern\LadenSpeichernView.cpp(60) : error C2511: 'OnDraw' : Überladene Member-Funktion 'void (class CDC *,char)' nicht in 'CLadenSpeichernView' gefunden
h:\my projects\ladenspeichern\ladenspeichernview.h(13) : Siehe Deklaration von 'CLadenSpeichernView'
Fehler beim Ausführen von cl.exe.Hast du da eine Idee?
Markus
-
Normalerweise sieht OnDraw so aus:
- in der h-Datei steht:
void OnDraw(CDC* pDC);
- in der cpp-Datei steht:
void Klassenname::OnDraw(CDC* pDC) { ... }
Wenn du jetzt einen weiteren Parameter hinzu fügst, musst du das auch in beiden Dateien anpassen. Z.B.:
- in der h-Datei:
void OnDraw(CDC* pDC, char cmeineVariable);
- in der cpp-Datei:
void Klassenname::OnDraw(CDC* pDC, char cmeineVariable) { ... }
Ich glaube aber nicht, dass das funktioniert, weil OnDraw dann auch mit beiden Parametern aufgerufen werden muss. Aber OnDraw startet ja praktisch automatisch nur mit dem ersten Parameter...