Before anything else, check the result of ReadBounds. I've found, to my chagrin, that it usually doesn't return the real bounds until much later (say, in OnActivate or OnShow).
Note also that the normal place to "custom-draw" any control is in its OnPaint event, so you could try that.