Вот... не ирейзится фон в общем на wxFrame на МАК ОС ИКС
MainFrame унаследован от wxFrame, присоединены OnPaint и OnEraseBackground, которые выглядят следующим образом:
Code: Select all
void
MainFrame::MainFrame_OnPaint(wxPaintEvent& event)
{
#if 1
wxPaintDC dc(this);
dc.SetBackground(wxBrush(wxColor(255, 255, 255)));
dc.Clear();
#endif
// передать дефолтному обработчику
event.Skip();
}
void
MainFrame::MainFrame_OnEraseBackground(wxEraseEvent& event)
{
#if 0
wxDC* dc = event.GetDC();
dc->SetBackground(wxBrush(wxColor(255, 255, 255)));
dc->Clear();
event.StopPropagation();
#endif
event.StopPropagation();
}
Перепробовал разные комбинации #if 0/1 и event.StopProp..() То есть пытался забивать OnEraseBackground (на мак ос икс, говорят, эмулируется) и очищать бэкграунд в OnPaint
Задача простая: нарисовать округленный прямоугольник вокруг группы контролов. Может, не самый удачный вариант рисовать его на общем бэкграунде, но на windows все работает замечательно. На маках вообще нулевой эффект от стирания бэкграунда, не говоря о рисовании на нем чего-либо.
Как хотя бы заставить фон стереться нужным мне цветом?
Или если по другому, если не передавать управление дефолтному обработчику OnPant (не вызывая event.Skip()) то как нарисовать все контролы по-одному? То есть как вызвать OnPaint на моем wxPaintDc для каждого контрола?
P.S. Извинияюсь, если не сразу отвечу.