문제

Windows (WXWIDGETS-2.8.9)에 WXTASKBARICON이있는 팝업 메뉴를 사용하고 있습니다. 팝업 메뉴를 라디오 항목으로 채우면 클릭하면 상태가 변경되지 않습니다. 팝업 메뉴 목록의 첫 번째 항목은 선택된 것으로 표시됩니다. 그러나 다른 항목을 선택해도 변경되지는 않습니다.

현재 항목 클릭 이벤트 핸들러가 없습니다 (응용 프로그램은 UI 프로토 타입과 비슷합니다). 이 핸들러의 항목 확인 상태를 수동으로 업데이트해야합니까?

도움이 되었습니까?

해결책

당신은 사용해야합니다 EVT_UPDATE_UI(yourCommandID, yourEventHandler) 확인/선택 해제 및 메뉴 항목을 활성화/비활성화합니다. updateui 이벤트 핸들러에서 항목이 활성화 된 경우 케이스를 지정해야합니다. bool m_SomeConditionVariable 그런 다음 2 개의 이벤트 처리기를 만들어야합니다.

void OnRadio1UpdateUI(wxUpdateUIEvent & event)
{
    event.Checked(m_SomeConditionVariable == true);
}

void OnRadio2UpdateUI(wxUpdateUIEvent & event)
{
    event.Checked(m_SomeConditionVariable == false);
}

이 경우 첫 번째 무선 항목은 변수가 False이고 변수가 true 인 경우 두 번째가 확인됩니다.

변수 저장에 포함 된 계산 된 조건을 사용할 수도 있습니다.

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