Чтобы сделать холст в WinAPI, нужно использовать объект Canvas. 1 Его конструктор получает контекст устройств (device context, DC), а деструктор освобождает его. 1
Объекты Canvas создают как автоматические (стековые) переменные. 1 Это гарантирует, что, когда программа выйдет из локальной области, всегда вызовется деструктор, в которой определены ресурсы. 1
Также можно создать и другие типы холстов, например: DrawItemCanvas для рисования элементов управления, MemCanvas — для рисования во фрагментах памяти. 1
Ещё один способ нарисовать картинку в WinAPI — использовать двойную буферизацию. 3 Для этого в памяти создают дополнительный рисовальный контекст, а при получении WM_PAINT рисуют в него. 3 Когда картинка полностью закончена, её копируют в видимый контекст окна. 3