القائمة المنبثقة الشيكات البند الراديو

StackOverflow https://stackoverflow.com/questions/631580

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا باستخدام القائمة المنبثقة مع wxTaskBarIcon على النوافذ (كويدغيتس-2.8.9). إذا كنت ملء القائمة المنبثقة باستخدام الأدوات الراديو، فإنها لا تغيير الدولة عند النقر عليها. ويتميز العنصر الأول في قائمة القائمة المنبثقة أثناء تحديده. ولكن اختيار أي عنصر آخر لا يغير هذا.

وحاليا لا يوجد أي بند انقر معالج الحدث (التطبيق هو أشبه النموذج UI). ينبغي لي يدويا تحديث حالة الاختيار عنصر في هذه معالج أو أنها لا تزال اجب الإطار؟

هل كانت مفيدة؟

المحلول

ويجب عليك استخدام 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);
}

و في هذه الحالة أول عنصر الإذاعة وسيتم فحص فقط عندما متغير غير صحيح وسيتم التحقق الثانية عندما المتغير هو الصحيح.

instaed حالة

ويمكنك استخدام حساب أيضا تخزين منها مثلا متغير.

void OnRadio2UpdateUI(wxUpdateUIEvent & event)
{
    // Item will be enabled only when text control has non-empty value
    event.Enabled(!m_SomeTextCtrl->GetValue().Trim().IsEmpty());
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top