У меня есть производный класс, в котором я хочу пропустить события колесика мыши в зависимости от параметра bool
. Поэтому, если я установил bScroll = true
, я хочу, чтобы панель базового класса обрабатывала события Scrollwheel. Если bScroll = false
, я хочу, чтобы их игнорировали. С кодом ниже события никогда не достигают функции OnMouseWheel
базового класса. Это какая-то проблема распространения? Как я могу это исправить? Спасибо!Пропаганда wxMouseEvent для базового класса в wxWidget
class Foo : public Bar
{
public:
Foo(wxWindow *pParent, bool bScroll = true) : Bar(pParent)
{
m_scroll = bScroll;
}
bool m_scroll;
protected:
virtual void OnMouseWheel(wxMouseEvent& roEvent)
{
if(m_scroll)
roEvent.Skip();
}
};
Большое спасибо! Но я бы сказал, что его Just 'if (m_scroll) Bar :: OnMouseWheel (roEvent);' – tzippy
Этот ответ неправильный, нет необходимости явно вызывать функцию базового класса и, по сути, это не имеет никакого смысла вызывать его, если вы делаете * не * пропустить этот обработчик событий, потому что он будет вызываться, если вы * сделаете * пропустите его. @ I.I. очень запутан. –