В wxWidgets 3.0.4, скомпилированном с Visual-C ++ 2010 Express.В основном фрейме, если я создаю wxGridSizer напрямую и добавляю в sizer, он работает нормально, но если вместо этого wxBoxSizer -> wxScrolledWindow -> wxGridSizer, он не взаимодействует ни с чем внутри, включая события.
Все началось спанель внутри wxBoxSizer, которую вы вставляете столько, сколько вам нужно (прежде чем вы увидите, сколько столбцов / строк необходимо).Идея состоит в том, чтобы wxScrolledWindow позаботился, если он не помещается на одном экране.Я перепробовал много-много вещей и заглянул в интернет.Чтобы упростить и до минимума, который показывает поведение, я покажу код внутри фрейма (с меню и меню, которые я не показываю, чтобы указать на проблему), который добавляет флажок, самое простое, что я могу придумать.Нет подключений, нет ничего, чтобы флажок.Без wxScrolledWindow вы можете проверить это, с wxScrolledWindow вы не можете.Я попытался с панелью вместо wxScrolledWindow, с событиями, с большим количеством вещей .. и такое же поведение.Любая идея?Заранее спасибо.
РАБОТАЕТ:
grid = new wxGridSizer( 3, 2, 0, 0 ); //declared in the class
wxCheckBox *prueba_cbox = new wxCheckBox( this, wxID_ANY, wxT("Check Me!"), wxDefaultPosition, wxDefaultSize, 0 );
grid->Add( prueba_cbox, 0, wxALL, 5 );
grid->Fit(this);
this->SetSizer(grid);
this->Layout();
this->Centre( wxBOTH );
НЕ РАБОТАЕТ:
misizer = new wxBoxSizer(wxHORIZONTAL);
wxScrolledWindow* miscroll = new wxScrolledWindow(this, wxID_ANY);
miscroll->SetScrollRate( 0, 16 );
misizer->Add(miscroll, 1, wxALL | wxEXPAND, 0);
grid = new wxGridSizer( 3, 2, 0, 0 );
wxCheckBox *prueba_cbox = new wxCheckBox( this, wxID_ANY, wxT("Check Me!"), wxDefaultPosition, wxDefaultSize, 0 );
grid->Add( prueba_cbox, 0, wxALL, 5 );
grid->Fit( miscroll );
miscroll->SetSizer( grid );
misizer->Fit(this);
this->SetSizer( misizer );
misizer->Layout();
this->Layout();
this->Centre( wxBOTH );
Еще, в: "misizer-> Add (miscroll, 1, wxALL)| wxEXPAND, 0); "
Зависит от границы, с 10 или более работами, с 5 или менее не работает.В этом простом примере;при фактическом размещении панелей внутри события не работают даже с границей 120.