Заставить дочерний элемент игнорировать перемещение курсора Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
SapSanich
In need of some credit
In need of some credit
Posts: 5
Joined: Sun Nov 29, 2020 4:23 pm

Заставить дочерний элемент игнорировать перемещение курсора

Post by SapSanich » Wed Dec 02, 2020 9:59 am

Здравствуйте.

Есть основной и дочерний элементы, унаследованные от wxWindow. Дочерний элемент используется только для вывода графики.

Code: Select all

pxBlankFiller::pxBlankFiller(wxWindow*      parent,
                             int            cellw,
                             const wxPoint& pos /* = wxDefaultPosition */,
                             const wxSize&  size /* = wxDefaultSize */)
        : wxWindow(parent, wxID_ANY, pos, size)
{
        m_cellw = cellw;
}

Code: Select all

pxCanvas::pxCanvas(wxWindow*      parent,
                   const wxPoint& pos /* = wxDefaultPosition */,
                   const wxSize&  size /* = wxDefaultSize */)
        : wxScrolledCanvas(parent, wxID_ANY, pos, size)
{
        m_blankFiller = new pxBlankFiller(this, 16, wxDefaultPosition,
                        wxSize(128, 128));
}
Можно ли как-нибудь заставить m_blankFiller игнорировать перемещение мыши, как будто этого элемента там нет? Т.е. исключить вызов EVT_ENTER_WINDOW и EVT_LEAVE_WINDOW при наведении / удалении курсора с m_blankFiller, и чтобы при перемещении поверх дочернего элемента вызывалось EVT_MOTION родителя.

Kvaz1r
Super wx Problem Solver
Super wx Problem Solver
Posts: 289
Joined: Tue Jun 07, 2016 1:07 pm

Re: Заставить дочерний элемент игнорировать перемещение курсора

Post by Kvaz1r » Wed Dec 02, 2020 2:10 pm

Не вполне понятно что именно нужно сделать, есть минимальный воспроизводимый пример?
Если вам не надо ничего обрабатывать в дочернем элементе - не подписывайтесь на обработчик событий. Если надо - значит надо определить условия при котором в дочернем обработчике ничего не делать.

SapSanich
In need of some credit
In need of some credit
Posts: 5
Joined: Sun Nov 29, 2020 4:23 pm

Re: Заставить дочерний элемент игнорировать перемещение курсора

Post by SapSanich » Wed Dec 02, 2020 3:01 pm

Вопрос решился через отдельную функцию вне класса, можно закрывать тему.

Code: Select all

void draw(wxDC &dc, int width, wxPoint pos, wxSize size)
...

Post Reply