Текущий архив: 2007.09.16;
Скачать: CL | DM;
ВнизПолучить фото окна зная его HWND Найти похожие ветки
← →
JanMihail © (2007-07-05 16:46) [0]Как получить фото окна зная его Handle (HWND)
Желательно в TBitmap
Пробую так, не получается :((
h : HWND;//Хэндл окнаcan: TCanvas;
...
can := TCanvas.Create;
can.Handle := GetDC(h);
BitBlt(Image1.Canvas.Handle, 0, 0, 700, 600, can.Handle, 0, 0, SRCCOPY);
<HR>
Подскажите пожалуйста как реализовать?
← →
Cj © (2007-07-05 18:15) [1]создай Bitmap и делай в него CopyRect
← →
Игорь Шевченко © (2007-07-05 18:25) [2]SendMessage (h, WM_PRINT, Image1.Canvas.Handle, PRF_CLIENT or PRF_NONCLIENT) ?
← →
JanMihail © (2007-07-05 18:38) [3]
> Cj © (05.07.07 18:15) [1]
CopyRect не подходит. Т.к. поверх нужного окна может быть другое окно и CopyRect захватывает часть покрытого окна.
> Игорь Шевченко © (05.07.07 18:25) [2]
Попробовал. Не выходит. Возвращает пустой белый Image
← →
{RASkov} © (2007-07-05 19:42) [4]> [0] JanMihail © (05.07.07 16:46)
Ну вообще-то получается... только без рамки (клиентская часть), и если сам калькулятор виден на экране:var DC: HDC; H: THandle;
begin
H:=FindWindow(nil, "Калькулятор");
DC:=GetDC(H);
BitBlt(Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY);
ReleaseDC(H, DC);
end;
правда помимо калькулятора, рисуется еще и область правее и ниже его (если форма больше калькулятора:)) Но это отдельная тема...
← →
JanMihail © (2007-07-05 20:25) [5]
> {RASkov} © (05.07.07 19:42) [4]
Я же говорю. Калькулятор может быть за другим окном. Или часть калькулятора будет за другим окном и уже не будет клиентская область. Будет кусок того окна.
← →
{RASkov} © (2007-07-05 21:16) [6]> [5] JanMihail © (05.07.07 20:25)
Посмотри вот здесь
http://delphimaster.net/view/4-1169652134/
← →
{RASkov} © (2007-07-05 21:55) [7]Вот так попробуй:
function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
implementation
{$R *.dfm}
function PrintWindow; external user32 name "PrintWindow";
............
PrintWindow(FindWindow(nil, "Калькулятор"), Canvas.Handle, 0);
Только:
Windows NT/2000/XP/Vista: Included in Windows XP and Windows Server 2003.
Windows 95/98/Me: Unsupported.
value=" Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.
И если рисуемое окно свернуто, то рисуется его свернутое изо.
← →
JanMihail © (2007-07-06 11:41) [8]
> {RASkov} © (05.07.07 21:55) [7]
Спасибо!!! То что нужно!!!
Страницы: 1 вся ветка
Текущий архив: 2007.09.16;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.041 c