Page 1 of 1

wxEVT_SET_FOCUS и wxComboBox

Posted: Thu Nov 20, 2008 7:10 am
by borr_1
Мне нужно отследить событие - получение фокуса комбобоксом.
Пытаюсь:

Code: Select all

Connect(ID_ARENDATOR/*это ID того самого комбы*/, wxEVT_SET_FOCUS,(wxObjectEventFunction)&Dogovor::OnFocusArendator);
....
void Dogovor::OnFocusArendator(wxFocusEvent& event)
{
   //Сюда отладчик вообще не попадает
   event.Skip();
}
То же самое с wxEVT_ACTIVATE и wxActivateEvent - вообще никакой реакции.
Помогите решить задачу.

Re: wxEVT_SET_FOCUS и wxComboBox

Posted: Thu Nov 20, 2008 8:04 am
by tan
borr_1 wrote:Мне нужно отследить событие - получение фокуса комбобоксом.
Пытаюсь:

Code: Select all

Connect(ID_ARENDATOR/*это ID того самого комбы*/, wxEVT_SET_FOCUS,(wxObjectEventFunction)&Dogovor::OnFocusArendator);
А это реальный код? Вообще-то я полагаю должно быть примерно так:

Code: Select all

m_combo->Connect(ID_ARENDATOR/*или wxID_ANY*/, wxEVT_SET_FOCUS,(wxObjectEventFunction)&Dogovor::OnFocusArendator, 0, this);

Posted: Thu Nov 20, 2008 8:34 am
by borr_1
Да действительно код нереальный :oops:

А я уж было в обход пошел через wxEVT_CHILD_FOCUS

Code: Select all

void Dogovor::OnFocusArendator(wxChildFocusEvent& event)
{
   int id = event.GetWindow()->FindFocus()->GetId();
   if(event.GetWindow()->FindFocus()->GetId() == ID_ARENDATOR)
    {...}
   event.Skip();
}