Я хочу поймать кадр рабочего стола и сохранить его в структуре HBITMAP.
Затем, после создания правильного контекста устройства памяти из контекста устройства главного окна моего приложения, я бы выбрал в него HBITMAP и использовал StretchBlt для отображения растрового изображения.
Но это работает не так, как ожидалось, потому что оно просто показывает черную рамку.
И hdc, и mem_hdc - соответственно контекст устройства и контекст устройства памяти главного окна, инициализированные ранее.
Вот код:
...
hDC desk_hdc, desk_mem_hdc;
BITMAP bitmap;
HBITMAP hbitmap;
desk_hdc = GetDC(NULL);
hbitmap = CreateCompatibleBitmap(desk_hdc, GetDeviceCaps(desk_hdc, HORZRES), GetDeviceCaps(desk_hdc, VERTRES));
GetObject(hbitmap, sizeof(BITMAP), &bitmap);
SelectObject(mem_hdc, hbitmap);
StretchBlt(hdc, 0, 0, 1024, 768, mem_hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY|CAPTUREBLT|NOMIRRORBITMAP);
...