Nein, den Index des zuletzt ausgewählten Elements speichern (wie in ravenspoint's answer gezeigt) oder unter Verwendung von wxMenuBarBase::IsChecked()
, bis Sie die ausgewählten Radiobutton finden, ist der einzige Weg, es zu tun.
Damit wxWidgets Zugriff auf die aktuell ausgewählte Schaltfläche haben, müsste sie nicht nur gespeichert werden (was nicht zu vergessen bedeutet, nicht nur zu aktualisieren, wenn die ausgewählten Änderungen, sondern auch wenn Elemente in das Menü eingefügt/gelöscht werden) es ist schon nicht ganz trivial), aber irgendwie den Zugriff auf die Radio-Items-Gruppe zu ermöglichen, die Sie interessiert, die es erfordern würde, sie identifizieren zu können, und derzeit gibt es keine Möglichkeit, dies zu tun, und es wird nicht besonders sein einfach.
Was jedoch leicht, getan werden könnte, ist eine wiederverwendbare Funktion int GetIndexOfSelectedRadioItem(int firstItem)
schreiben, die bei dem gegebenen Punkt beginnen würde und IsChecked()
auf nachfolgende Artikel aufrufen, bis es true zurück und kehrt das von der Position versetzt. Sie sollten in der Lage sein, es in Ihrem eigenen Code zu tun, aber wenn Sie solche Funktion in wxWidgets selbst (als eine statische wxMenuBar
Methode wahrscheinlich) einschließen möchten, zögern Sie bitte nicht, Patches/Pull-Anforderungen zu senden, es zu tun!
Ja, das ist meine aktuelle Lösung. Ich habe auf etwas Schöneres gehofft. –