The problem with your implementation is you Main Message Loop is getting blocked and the best way to be doing is just in the Timer Post a Message of Paint and return immediately and see if that improves the scenario.

Also I am not sure you need to be triggering the OnDraw but windows will but if your requirements is to draw then you need to be working on DC to eliminate the un-visible part of the windows as well.