mit wxWindows einen Button erzeugen?
-
Hi,
hab folgendes Problem: Ich kann irgendwie mit wxWindows keinen Button erzeugen!
kann mir jemand sagen wo der fehler ist?#include <wx/wx.h> #include <wx/button.h> class MiniApp : public wxApp { public: virtual bool OnInit(); }; IMPLEMENT_APP(MiniApp) bool MiniApp::OnInit() { wxFrame *frame = new wxFrame(NULL, -1, "Minimal wxWindows"); SetTopWindow(frame); frame->Show(true); wxButton *test = new wxButton(frame,-1,"test",(10,10),(-1,-1),0,0,"test"); test->Show(true); return true; }
-
Was funktioniert denn nicht?
-
er bringt mir folgenden fehler:
--------------------Configuration: test - Debug--------------------
Compiling source file(s)...
main.cpp
main.cpp: In member functionvirtual bool MiniApp::OnInit()': main.cpp:20: warning: left-hand operand of comma expression has no effect main.cpp:20: warning: left-hand operand of comma expression has no effect main.cpp:20: error: no matching function for call to
wxButton::wxButton(
wxFrame*&, int, const char[5], int, int, int, int, const char[5])'
C:\MinGWStudio\Include\wx\msw\button.h:24: error: candidates are:
wxButton::wxButton(const wxButton&)
C:\MinGWStudio\Include\wx\msw\button.h:35: error:
wxButton::wxButton(wxWindow*, int, const wxString&, const wxPoint&, const
wxSize&, long int, const wxValidator&, const wxString&)
C:\MinGWStudio\Include\wx\msw\button.h:26: error:
wxButton::wxButton()test.exe - 4 error(s), 2 warning(s)
-
-
wxButton(frame,-1,"test",(10,10),(-1,-1),0,0,"test")
ähhm das hier ist (wx)Python syntax. (In C gibt es keine Tuples)
geht dir ein licht auf?
wenn nicht, noch ein Hinweis: in C bedeutet ein komma, das davon getrennte ausdrücke nacheinander ausgeführt werden und das jeweilige ergebnis verworfen.
-
aber diesen code gibt es in etwa dieser Form in der wxWindows Dokumentation auf www.wxwindows.org!!!
-
also was ist jetzt? problem gelöst?
-
in WIE änlicher form? ich kanns nur noch mal wiederholen: dein Funktionsaufruf ist zwar erlaubte C++ syntax aber es tut nacht das was du denkst. 2 Zahlen durch komma getrennt in klammern erzeugen unter python einen tuple und da wäre dieser aufruf erlaubt. aber unter C++ wird in diesem fall 10 an die Funktion übergeben, da die erste 10 "dank" der klammer einfach zu einem No Op wird. du solltest villeicht die wxWindows funktion zum erzeugen eines Punktes oder whatever vor die klammer stellen, dann würd es villeicht. gehn.
btw: selber nachdenken hilft immer
-
er dachte wahrscheinlich durch (10, 10) kann man ein wxPoint Objekt erstellen. So geht das in C++ aber (leider?) nicht.
-
@obj
ja genau!! ok habs jetzt hinbekommen!!! das wxPoint , und das wxSize hat vor den Klammern gefehlt!!!
-
Könnte mir jetzt vielleicht noch jemand sagen wie ich bei wxWindows nen Callback mache? Also "Wenn auf Button geklickt dann führe folgende funktion aus..."...hab die ganze Zeit im Netz gesucht aber nichts gerafft
-
Da gibt es keine Callbacks.
Du musst ein event table machen und einem Event eine id zuordnen.
Steht in der Dokumentation.Also mach den Button, gib ihm eine id und dann im evnt table, dem event eine id zuordnen, falls ich das richtig verstanden habe. -Könnte auch falsch sein.
MfG Max
-
CeNoRiDeR, kannst du nicht einfach mal in die Samples gucken?
-
Ach ja, kennt sich jemand mit den Einstellungen von VisualWX aus?
Ich habe leider folgendes Problem:
http://www.c-plusplus.net/forum/viewtopic.php?p=457862#457862MfG Max
-
@sampler hab ich doch!!! es gibt genau 3 samples!!! und nur eines davon ist von von wxWindows(nur grundgerüst für Fenster!!!)...
-
bei mir sind es 69
wxMSW-2.4.2.zip -> samples
-
vielleicht hat er sich nur das Dev-C++ Package heruntergeladen?
MfG Max
-
@Master_Max
ja ich hab beim Dev-Cpp nur das DevPak!!!
bin vorhin aber vom MinGW Developer Studio ausgegangen...also ein kleines missverständnis
-
lade dir noch das normale wxWindows herunter, da ist eine viel bessere Dokumentation mit einer menge Sample Codes dabei!
PS: Das brauchst du auch wenn du dann mit VisualWX arbeiten willst, was ich nicht zum laufen bekomme.
MfG Max