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.h

    mstank 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...


Anmelden zum Antworten