Problem solved. I spent some time researching it and worked out what was
going on.
We have a structure of:
Splitter window
Tree
Notebook
In here I omitted to say Panel.
Sizer
HTML window and optionally edit control.
When a selection is made in the tree, the HTML window may be destroyed
and a new one created, possibly with edit control.When this is done, the new child windows don't show until the splitter
window is dragged. Using Spy++ shows that they exist, but have 0 size.I've tried putting a Sizer.Layout() call in with no effect; similarly
for a Refresh() call on the notebook.
The problem is that the sizer has the HTML window added to it, and
computes a new size of 0. Then when Panel.SetSizer is called it sets the
panel to the same size - i.e. 0. That's why Layout, Refresh don't work.
Solution: call sizer.SetDimension() using the size of the panel, prior to
calling panel.SetSizer.
Hugh