Do not call CStatic:OnPaint() for painting messages
- это когда полностью свою отрисовку делаешь. Если не вызывать родительскую, то контекст надо самому создать:
void CBatcher::OnPaint() 
{
  CPaintDC dc(this);
  //своя графика
  //dc. ...
}
А в случае вызова родительского обработчика - контекст уже создан там, поэтому используется он , а достаём указатель на него через GetDC(). Ну, у не забываем при помощи ReleaseDC() замочить временную копию контекста , которую создаёт функция GetDC() (указатель на копию она нам вернула) 
