wxEVT_SET_FOCUS и wxComboBox Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

wxEVT_SET_FOCUS и wxComboBox

Post by borr_1 » Thu Nov 20, 2008 7:10 am

Мне нужно отследить событие - получение фокуса комбобоксом.
Пытаюсь:

Code: Select all

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

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Re: wxEVT_SET_FOCUS и wxComboBox

Post by tan » Thu Nov 20, 2008 8:04 am

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);
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Thu Nov 20, 2008 8:34 am

Да действительно код нереальный :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();
}

Post Reply