我正在使用此代码创建指定窗口的屏幕截图(有效或无效)。
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;
现在让我们说窗口有一个组合框。当我点击组合框并展开列表时,列表内容不包含在我的屏幕截图中。
您知道创建完整窗口截图的任何方法吗?