wxWidgets - EVT_SIZE bei FlexGridSizer
-
Liebe C++Forumsmember,
da ich am Dienstag meine Facharbeit abgeben muss und ein Problem habe, das ich einfach nicht gelöst bekomme, wollte ich euch bitten mir dabei zu helfen.
Meine Ausgangssituation ist ein Fenster, das in Tabs gesplittet ist und in jedem Tabpanel befindet sich ein FlexGridSizer in der der Inhalt organisiert ist. Dieser FlexGridSizer streckt nun falls nötig, also falls das Fenster vergrößert oder -kleinert wird den Inhalt auf die neue entsprechende Größe mit GrowableRows und -Cols. Mein Problem ist aber, dass ich in ein Panel mit einem wxDC zeichne und wenn ich nun das Fenster vergrößere, wird zwar ein EVT_PAINT Event getriggert, doch das scheint vor dem Resize zu passieren, denn der DC zeichnet den Inhalt an die vorherigen Fensterwerte angepasst und ich muss um den Inhalt richtig darzustellen ein weiteres Repaint-Event auslösen ( zum Beispiel Tab wechseln ). Meine Idee war jetzt, dass ich mit wxPostEvent sobald ein Resize-Event aufgerufen wird nochmal ein Paint-Event auslöse. Das Problem ist jetzt aber, dass wenn ich versuche etwas mit dem EVT_SIZE Event des Frames mit Connect(...) zu verbinden, anscheinend die dynamische Funktionalität des FlexGridSizers verloren geht und bei einer Fensterveräderung der Inhalt immer so groß bleibt wie am Anfang.
Ich hoffe ihr versteht mein Problem und könnt mir irgendeinen Ansatz geben, um dieses Problem zu lösen.MfG RikuXan
-
Da meine Deadline näherrückt, möchte ich meine Frage noch einmal vereinfachen:
Kann man mit einem Event zwei Handler verknüpfen, ohne dass der erste dabei überschrieben wird?MfG RikuXan
-
RikuXan schrieb:
Da meine Deadline näherrückt, möchte ich meine Frage noch einmal vereinfachen:
Kann man mit einem Event zwei Handler verknüpfen, ohne dass der erste dabei überschrieben wird?MfG RikuXan
Klar. Wenn du zwei Handler mit Connect() übergibst, werden beide nacheinander aufgerufen. (probier's einfach aus)
-
Komisch, den mein Problem ist, dass sobald ich einen zweiten Handler an EVT_SIZE connecte meine FlexGridSizer nicht mehr funktionieren ( was, wie ich denke daran liegt, dass sie das EVT_SIZE nicht mehr mitbekommen )
Irgendeine Idee, wie das zusammenhängen könnte?MfG RikuXan
-
Vielleicht hast du in deinem Event-Handler kein evt.Skip() gemacht?