Я использую этот код для создания скриншота указанного окна (активно или нет) .
function WndScreen(const h: HWND; const bmp: TBitmap): boolean;
var
Src, Dst: HDC;
R: TRect;
Width, Height: Integer;
B: HBITMAP;
Old: HGDIOBJ;
begin
Src := GetDC(h);
GetWindowRect(h, R);
Width := R.Right - R.Left;
Height := R.Bottom - R.Top;
Dst := CreateCompatibleDC(Src);
B := CreateCompatibleBitmap(Src, Width, Height);
Old := SelectObject(Dst, B);
BitBlt(Dst, 0, 0, Width, Height, Src, 0, 0, SRCCOPY);
SelectObject(Dst, Old);
DeleteDC(Dst);
ReleaseDC(h, Src);
bmp.Width := Width;
bmp.Height := Height;
bmp.Handle := B;
DeleteObject(B);
end;
Теперь предположим, что в окне есть выпадающий список.Когда я нажимаю на поле со списком и раскрываю список, содержимое списка не включается в мой снимок экрана.
Известен ли вам какой-либо способ создания полного снимка окна?