Komponente dynamisch estellen - wxWidgets
-
Hallo Leute!
Wie kann ich unter wxWidgets Komponente dynamisch erstellen?
Gruß
-
Was meinst du mit dynamisch?
CreateButtons(int n) { for(int i =0; i < n; i++) GetSizer()->Add(new wxButton(this,wxString::Format("%i",i)),0,wxALL); }
Genauso kannst du auch Komponenten in einem vector speichern:
std::vector< MyComponent* > vec;
phlox
-
mit dynamisch meine ich!
Wenn ich aus einer Bibliothek ein Element aussuche, das z.B. so aussieht!
|-----| --| |-- |-----|
Dabei übergebe ich nur die Koordinaten des Rechteck und der zwei Linien. Dann soll auf meinem wxPanel dieses Element erscheinen!
Das meine mit dynamischer Erstellung!
Gruß
-
hw_sw schrieb:
mit dynamisch meine ich!
Wenn ich aus einer Bibliothek ein Element aussuche, das z.B. so aussieht!
|-----| --| |-- |-----|
Dabei übergebe ich nur die Koordinaten des Rechteck und der zwei Linien. Dann soll auf meinem wxPanel dieses Element erscheinen!
Das meine mit dynamischer Erstellung!
Gruß
Ja, OnPaint registrieren, und dann entsprechend dort Zeichnen.
Wenn du verschiedene Objekte zeichnen willst, musst du diesen Objekten evtl. eine Draw Methode geben:
void Draw(wxDC& dc){/* zeichen code */}
Und von OnPaint aus diese methode aufrufen.phlox
-
ja ok! das habe ich auch gemacht!
Aber wie mache ich dann, dass ich diese Zeichnung bewegen kann, oder das ich diese Zeichnung speihern kann? Nicht in Bitmap!! sondern die Coordinaten
-
Du solltest erstmal schauen, das du dir ein gutes Datenmodell bastelst, was entsprechend diese Dinge abdeckt.
Wie sieht dein Datenmodell zur Zeit aus?
-
momentan habe ich kein Datenmodel, wiel ich nicht einmal weiß ich diese Sachen erledigen soll. Ich will mein Datenmodell darauf aufbauen.
alias hw_sw
-
Wie willst du was darstellen, was noch nicht existiert?
Letzten endes musst du irgendwo jeweils die Verbindungen speichern, und die Elemente.
Du brauchst also für die Elemente eine Basisklasse, plus eine für jedes Element was du als Or, And usw. darstellen willst.
Plus dann eine Klasse die die Verbindung zwischen zwei Klassen speichert. Desweiteren brauchst du eine Klasse, welche das ganze dann zentral als Dokument speichert.Schau dir bitte mal das MVC Pattern an.