Еще раз всем КУ!
по поводу events в wxwidgets: как перехватить даже не свой созданный евент,
а стандартный например wxCommandEvent из потомком из предка.
те например создается фрэйм MyFrame а из него (по нажатию на кнопочку) создается NewFrame... В NewFrame делаем wxCommandEvent event(GetId()); // ну или wxChangedEvent event(GetId());
GetEventHandler()->ProcessEvent( event );
вот и на сколько я понимаю в MyFrame должен вызываться метод
void MyFrame::GetEnvent(wxCommandEvent &ev). но этого как раз и не происходит. причем если GetEnvent вызывать в томже фрэйме, где деалется
GetEventHandler()->ProcessEvent( event ); то все работает.
есть ли каккиенибудь ососбенности при перехвате евентов от потомка к родителю?
ps бьюсь уже неделю над этой траблой
wxWidgets 2
Started By zarez, авг 02 2005 08:10
4 ответов в этой теме
#3
Отправлено 04 августа 2005 - 15:58
дык исходники то примеров в стандартной поставке есть... только толку от них там нету(ну или я не нашел) перехватов эвентов из другого фрейма...Кстати, меня этот вопрос тоже интересует, так же бьюсь над этой проблемой и безрезультатно.
Может у кого всетки есть исходники примеров wxWidgets?
#5
Отправлено 09 августа 2005 - 09:59
вот нашел тут вроде решенье, но... у меня опять не работает
мож у когоньть запашет
в конструктор кустомного класса добавить
m_propagationLevel = wxEVENT_PROPAGATE_MAX;
типа у меня сдесь...
wxChangedEvent(int id_,wxEventType type=wxEVT_CHANGED,bool idle_=FALSE): wxEvent(0,wxEVT_CHANGED) {
id=id_;
m_eventType = type;
idle=idle_;
m_propagationLevel = wxEVENT_PROPAGATE_MAX; };
это свойство wxEvent которое по дефольту wxEVENT_PROPAGATE_NONE
мож у когоньть запашет
в конструктор кустомного класса добавить
m_propagationLevel = wxEVENT_PROPAGATE_MAX;
типа у меня сдесь...
wxChangedEvent(int id_,wxEventType type=wxEVT_CHANGED,bool idle_=FALSE): wxEvent(0,wxEVT_CHANGED) {
id=id_;
m_eventType = type;
idle=idle_;
m_propagationLevel = wxEVENT_PROPAGATE_MAX; };
это свойство wxEvent которое по дефольту wxEVENT_PROPAGATE_NONE