Eigene CButton Klasse funktioniert nicht.



  • Hallo.
    Ich habe ein SDI Projekt angelegt und in dessen Ansicht “TestView.cpp“ erzeuge ich mit
    m_b1.create(...
    einen Button.
    In der “TestView.h” steht natürlich
    CButton m_b1;

    Der Button wird angezeigt und funktioniert auch.
    Nun hätte ich aber gerne eine eigene Button-Klasse mit dem Namen CMyButton.
    Ich habe also eine neue Klasse mit diesem Namen in mein Projekt eingefügt.
    Ich habe also nun eine MyButton.cpp und eine MyButton.h.
    Als nächstes habe ich in der TestView.h die Zeile
    CButton m_b1;
    durch
    CMyButton m_b1;
    ersetzt.

    In der TestView.cpp habe ich
    #include “MyButton.h“ eingefügt

    Beim kompilieren bekomme ich folgende Fehlermeldungen.

    c:\mybutton\test\testview.h(39) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_b1'
    c:\mybutton\test\testview.h(39) : error C2501: 'CMyButton' : Fehlende Speicherklasse oder Typbezeichner
    c:\mybutton\test\testview.h(39) : error C2501: 'm_b1' : Fehlende Speicherklasse oder Typbezeichner
    TestDoc.cpp
    TestView.cpp
    c:\mybutton\test\testview.h(39) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_b1'
    c:\mybutton\test\testview.h(39) : error C2501: 'CMyButton' : Fehlende Speicherklasse oder Typbezeichner
    c:\mybutton\test\testview.h(39) : error C2501: 'm_b1' : Fehlende Speicherklasse oder Typbezeichner
    C:\MyButton\Test\TestView.cpp(89) : error C2065: 'm_b1' : nichtdeklarierter Bezeichner
    C:\MyButton\Test\TestView.cpp(89) : error C2228: Der linke Teil von '.Create' muss eine Klasse/Struktur/Union sein
    Generieren von Code...
    Fehler beim Ausführen von cl.exe.

    Wenn ich auf die ersten sechs Fehlermeldungen klicke springt die Entwicklungsumgebung
    nach TestView.h

    public:
    -> CMyButton m_b1;

    Bei den letzen zwei in die TestView.cpp

    -> m_b1.Create(_T("Button 1"), WS_CHILD | WS_VISIBLE | WS_BORDER, CRect(10, 100, 150, 180), this, IDC_Button1);

    Was mache ich denn Falsch?

    hal_ibm



  • Der Compiler muß die Klasse kennen, bevor er sie verwenden kann. Das heißt, die "MyButton.h" mußt du bereits in der "TestView.h" einbinden, bevor du CMyButton-Objekte anlegen kannst.



  • Super CStoll das wars.
    Ein einfaches #include "MyButton.h" hat das Problem gelöst.
    Danke nochmal.

    hal_ibm


Anmelden zum Antworten