EVT_UPDATE_UI(yourCommandID, yourEventHandler)
メニュー項目のチェック/チェック解除および有効化/無効化に使用する必要があります。UpdateUI イベント ハンドラーで、項目が有効になっているケースを指定する必要があります。たとえば、コマンド ID_RADIO_1 と ID_RADIO_2 を持つラジオボタン グループがあり、条件bool m_SomeConditionVariable
に応じてチェックする必要がある場合は、それらの 2 つのイベント ハンドラーを作成する必要があります。
void OnRadio1UpdateUI(wxUpdateUIEvent & event)
{
event.Checked(m_SomeConditionVariable == true);
}
void OnRadio2UpdateUI(wxUpdateUIEvent & event)
{
event.Checked(m_SomeConditionVariable == false);
}
この場合、変数が false の場合にのみ最初のラジオ項目がチェックされ、変数が true の場合に 2 番目のラジオ項目がチェックされます。
変数を保存する代わりに、計算された条件も使用できます。
void OnRadio2UpdateUI(wxUpdateUIEvent & event)
{
// Item will be enabled only when text control has non-empty value
event.Enabled(!m_SomeTextCtrl->GetValue().Trim().IsEmpty());
}