GetDC просто возвращает дескриптор в контекст устройства, который можно использовать в любое время и в любом месте, чтобы сделать свой собственный рисунок.BeginPaint, с другой стороны, подготавливает окно для рисования, а также предоставляет информацию о том, что следует рисовать (например, нужно ли перекрашивать фон и прямоугольник, который нужно рисовать).
Примеры использования каждого?BeginPaint чаще всего встречается внутри обработчиков WM_PAINT (MSDN: приложение не должно вызывать BeginPaint, кроме как в ответ на сообщение WM_PAINT. Каждый вызов BeginPaint должен иметь соответствующий вызов функции EndPaint.).GetDC можно использовать где угодно, так что если вы хотите рисовать во внешнем окне.В принципе, в любое время это не в обработчике WM_PAINT.BeginPaint и EndPaint также оказывают некоторое влияние на каретку.Прочитайте msdn для более подробной информации.