다른 어플리케이션의 자식 폼의 핸들을 얻을려고 합니다. 그래서 그 자식 푬의 DC 값을 얻을려고 하는데요
...... 어렵네요....
winHWND, EHwnd : HWND;
winDC: HDC;
Rect: TRect;
fBitmap : TBitmap;
begin
fBitmap:=tbitmap.create;
Try
winHWND := FindWindow(nil, '관리');
EHwnd := findwindowex(winHWND, 0,'TForm', nil);
winDC := GetwindowDC(EHWnd);
GetWindowRect(EHWND, rect);
fBitmap.width := 300;
fBitmap.height := 300;
BitBlt(fBitmap.canvas.handle, 0, 0, fBitmap.width, fBitmap.height,
winDC, 0, 0, SRCCOPY);
Image2.Width := fBitmap.width;
Image2.Height := fBitmap.height;
SendMessage( EHWND, WM_PAINT, Image2.Canvas.Handle, 0 );
image2.Picture.Bitmap := fBitmap;
image2.Picture.SaveToFile('d:tmpaaaa.bmp');
ReleaseDC(winHWND, winDC);
Finally
fbitmap.free;
end;
여기서 아무리 해도 EHWnd가 0임다.
EHwnd := findwindowex(winHWND, 0,'TForm', nil);
이 부분에서 'TForm' 을 PChar로 바꾸어 보아도 똑같네욤..... 어떻게 해야할지..
델파이 폼은 대부분 그냥 FindWindow로 다 찾아지는데... 델파이 폼은 대부분 자식윈도우가 아니라 메인윈도우입니다. MS의 Spy++이나 델파이의 WinSight를 이용해서 윈도계층구조가 어떻게 되어 있는지 확인해보세요...
제 생각엔 winHWND 이 윈도 핸들이 님이 찾고자 하는 핸들 같은데...
^^ 항상 즐코하세요...