I have a class derived from wx.Panel that creates an image in a large border area (e.g. a little over 30 pixels across on the left edge).  I want to be able to derive subclasses from it for the panels in part of my application, but I can't figure out how to adjust the position the children in the derived panels - they think the added border area is part of the client window and quite happily position themselves under it (and are subsequently erased by the base class' EVT_PAINT handler).
I've tried tracking a client area and overriding the various GetClient... methods in my base class, but it doesn't seem to change anything about the child behavior.  I suppose I could manually reposition the child windows in the subclasses, but that's a lot of repeated code and it seems like it shouldn't be necessary.
Searching for answers on the Internet has not been a successful enterprise.  I also tried looking through the wx code for an answer, but I haven't had any luck there either.
What's the best way to define the client area in the window so that children automatically position themselves away from the edge of the parent?  Is there a way to tell new objects that their parent's client area doesn't start at (0,0) (it seems like overriding GetClientAreaOrigin should do this, but doesn't seem to work)?  Should I be moving them manually in the context of Layout() or a wx.EVT_SIZE handler?  What's the elegant and/or appropriate solution?
I abandoned this approach as unwieldy after some effort, but I did have some limited success, and I wanted to point out some of the things I learned in case someone else is considering it.

Look at PyPanel - it is designed to be overridden fairly extensively and responded well to most of what I was doing.
The best approach I found in my original effort was to create a panel instance as a child of the control to work as a content manager.  I overloaded AddChild and SetSizer in the control to redirect them to the child panel; I also implemented a protected flag that I could set in the control to prevent that redirection (otherwise I'd be trying to add the content panel to itself instead of the control when I created it).
I still encountered some weirdness with certain controls (SpinCtrl in particular wanted to position itself in very strange ways, often partially outside the content panel, despite all my efforts to prevent it).  I also had some trouble with getting the sizers to behave well as regards the best/minimum size for the controls.

I think the best piece of advice I could give is to consider looking at other ways to do this; in my case, I was able to create a control that could be included in a panel that facilitates the desired behavior of the parent; the hooks in the parent's routines were much easier to manage than the Frankensteinian mess of a derived class that I had created in my original effort.
How to reposition children in wx.Panel derived class with a large border?