[wxWidgets] Mit wxFormBuilder erzeugter Dialog funktioniert nicht
-
Hallo zusammen,
habe gerade ein kleines Problem ein einfachen Dialog den ich mit wxFormBuilder erzeugt habe aufzurufen. Ich benutze Version 3.0.18 (Beta) des wxFormBuilders. Danach habe ich für diesen Dialog auch gleich eine Inherited Class generieren lassen.
Hier mal die Namen der 4 Dateien:Normaler Dialog:
Test.h
Test.cpp
Inherited Class:
wxTestDialog.h
wxTestDialog.cppNun möchte ich diesen Dialog gerne in einem schon bestehenden Projekt einbinden und aufrufen. In diesem Projekt gibt es eine Hauptclasse die auch die OnInit()-Methode bereitstellt.
Ich bin nun folgendermaßen vorgegangen:
-Ich habe in der MainApp.h die Datei "wxTestDialog.h" eingebunden über ein include.
- Dann habe ich der Hauptklasse ein Objekt der wxTestDialog-Klasse angelegt (unter private)wxTestDialog *td;
- Nun versuche ich mit dem Konstruktor der mir durch die Inherited Klasse ja schon vorgegeben wurde das Objekt mit new zu erzeugen.
td = new wxTestDialog((wxWindow*)NULL);
Wenn ich nun versuche dieses erzeugen des Objektes so durchzuführen, dann sagt er mir, dass er keine 1 Parameter akzeptiert.
Hier mal die Definitionen der Klassen:
Normal
class TestDialog : public wxDialog { private: protected: wxButton* m_button7; wxButton* m_button8; public: TestDialog( wxWindow* parent, int id = wxID_ANY, wxString title = wxT("TestMaske"), wxPoint pos = wxDefaultPosition, wxSize size = wxSize( 467,104 ), int style = wxCAPTION|wxCLOSE_BOX|wxSTAY_ON_TOP|wxSYSTEM_MENU ); };
Inherited
class wxTestDialog : public TestDialog { public: /** Constructor */ wxTestDialog( wxWindow* parent, int id, wxString title, wxPoint pos, wxSize size, int style ); };
Wenn ich dann versuche die anderen Parameter wie Position, Size usw. auch mit anzugeben, dann spuckt der Compiler mir folgende Fehlermeldung aus:
error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall wxTestDialog::wxTestDialog(class wxWindow *,int,class wxString,class wxPoint,class wxSize,int)" (??0wxTestDialog@@QAE@PAVwxWindow@@HVwxString@@VwxPoint@@VwxSize@@
H@Z)Wie muss ich denn nun das Objekt erzeugen damit ich es dann über die Hauptklasse benutzen kann?
(Das heißt, ich möchte mit dem Objekt der Hauptklasse auf das nun erzeugte Objekt zugreifen können)
Kann mir einer einen Tip geben?
Vielen Dank im Voraus
Gruß
-
Vergebe auch in der abgeleiteten Klasse Default werte,
und du musst den Konstruktor der Parentklasse aufrufen bzw. weiterleiten://in der cpp MyPanel::MyPanel(wxWindow* p,int id):wxPanel(p,id) {}