Нет, спасая индекс последнего выбранного элемента (как показано на ravenspoint's answer) или с помощью wxMenuBarBase::IsChecked()
, пока не найдете кнопку выбранного радио это единственный способ сделать это.
Для wxWidgets, чтобы обеспечить доступ к выбранной в данный момент кнопке, необходимо будет не только его сохранить (что означает не забывать обновлять не только при выбранных изменениях, но также и когда элементы вставляются в/удаляются из меню, поэтому это уже не совсем тривиально), но чтобы каким-то образом предоставить доступ к интересующей вас группе радиопомех, что потребует возможности идентифицировать ее, и в настоящее время нет способа сделать это, и добавление ее не будет особенно просто.
Что можно сделать легко, однако, пишет многоразовую функцию int GetIndexOfSelectedRadioItem(int firstItem)
, что бы начать в данном пункте и вызывать IsChecked()
на последующих пунктах, пока она не возвращает истину и возвращает смещение элемента. Вы должны иметь возможность сделать это в своем собственном коде, но если вы хотите включить такую функцию в сам wxWidgets (возможно, как статический метод wxMenuBar
), пожалуйста, не стесняйтесь посылать исправления/тянуть запросы!
Да, это мое текущее решение. Я надеялся на что-то более красивое. –