Позвоните OpenClipbard()
, чтобы открыть буфер обмена, и наберите GetClipboardData()
с типом CF_BITMAP
, чтобы получить указатель на данные изображения, хранящиеся в буфере обмена. Если в буфере обмена нет изображения, будет возвращен дескриптор NULL.
Затем, внутри обработчика WM_PAINT
вашего окна, используйте BeginPaint()
, чтобы получить контекст устройства для рисования в вашем окне, и используйте CreateCompatibleDC()
, чтобы создать устройство памяти контекст для растрового изображения. Используйте SelectObject()
на вашем DC памяти, чтобы выбрать растровое изображение в нем, и, наконец, используйте BitBlt()
, чтобы перетянуть растровое изображение из DC памяти в DC окна. Не забудьте очистить - позвоните DeleteDC()
, чтобы удалить память DC, и позвоните EndPaint()
, чтобы закончить рисование.
Наконец, позвоните CloseClipboard()
, когда вы закончите. Обратите внимание, что буфер обмена владеет дескриптором растрового изображения, и как только вы вызовете CloseClipboard()
, растровое изображение будет уничтожено. Поэтому, если вы хотите повесить растровое изображение после закрытия буфера обмена, вам нужно будет сделать его копию.