Добрый день. Стыдно, что обращаюсь, но до не могу понять, в чем загвоздка.
Суть в следующем: необходимо сделать снимок окна под курсором.
Зарегал глобарьную горячую клавишу. По событию на неё получаю Хендл окна под курсором и делаю с него снимок.
Код:
procedure TfMain.WMHotKey(var Msg: TWMHotKey);
var
lpPoint: TPoint;
DestDC: HDC;
r: TRect;
b: TBitmap;
begin
if Msg.HotKey = id_Search then
begin
GetCursorPos(lpPoint);
DestWND := WindowFromPoint(lpPoint);
GetWindowRect(DestWnd, r);
b := TBitmap.Create;
b.Width := r.Right - r.Left;
b.Height := r.Bottom - r.Top;
DestDC := GetWindowDC(DestWND);
try
BitBlt(b.Canvas.Handle, 0, 0, r.Right - r.Left, r.Bottom - r.Top, DestDC, 0, 0, SRCCOPY);
b.SaveToFile('c:\1.bmp');
b.Free;
finally
ReleaseDC(DestWND, DestDC);
end;
end;
end;
В результате получаю снимок области ограниценной положением того окна, т.е. само это окно и все то, что лежит поверх него. А хотелось бы получить только изображение окна. В чем я ошибся?