Say you call this:
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
wxSizer* childSizer = this->GetSomeSizer(); /* my own function that returns a sizer created in that function by a call to new wx*Sizer() */
// question 1 is about the following line:
sizer->Add(windowPtr,1,wxEXPAND);
// question 2 is about the following line:
sizer->Add(childSizer,1,wxEXPAND);
this->SetSizer(sizer);
// question 3 is about the following line:
GetSizer()->SetSizeHints(this);
// question 4 is about what would be the following line.
Then you later call SetSizer(NULL):
1) If windowPtr is a pointer to some child window, and it has a sizer that was set by SetSizer() earlier, was
its sizer and child sizers of it just deleted? If so, how does the child window know to recreate its sizers because they were invalidated?
2) childSizer is an explicitly added wxSizer*. It was just deleted, correct? If so, and if I want to create it again, the correct time to do so is in the same function following the call to SetSizer(NULL) and then call SetSizer(something) later in the function, correct?
3) What did this do, and how did it affect child windows (were they resized, were they repainted, etc)?
4) What things should I do to here make sure this window's sizer expands to the full client size of this window? After THAT, what should I do to make sure the child window windowPtr is repainted with the new size in this window's sizer (since it's not the full client size with childSizer taking up some of the space)?
I'll have more questions after these so stay tuned.