Показать сообщение отдельно
  #1  
Старый 07.04.2012, 10:28
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию Снимок окна

Добрый день. Стыдно, что обращаюсь, но до не могу понять, в чем загвоздка.
Суть в следующем: необходимо сделать снимок окна под курсором.
Зарегал глобарьную горячую клавишу. По событию на неё получаю Хендл окна под курсором и делаю с него снимок.
Код:
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;
В результате получаю снимок области ограниценной положением того окна, т.е. само это окно и все то, что лежит поверх него. А хотелось бы получить только изображение окна. В чем я ошибся?
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием