Сообщение WM_PAINT выдается, когда необходимо обновить часть окна.
Указывая BeginPaint / EndPaint (), вы сообщаете gdi, что вы действительно выполняете эту работу.
Если вы не вызовете BeginPaint () для указанного региона, сообщения WM_PAINT будут генерироваться до тех пор, пока кто-то не обновит их. Функция дает вам DC только потому, что это удобно. Внутренне BeginPaint () / EndPaint (), вероятно, вызывают GetDC () / ReleaseDC ().
В отличие от GetDC и ReleaseDC, вы говорите GDI, что вы теперь собираетесь что-то нарисовать на DC, без запроса gdi.