Q&A

  • 다른 어플리케이션의 자식 폼의 핸들을 얻을려고 합니다.
다른 어플리케이션의 자식 폼의 핸들을 얻을려고 합니다. 그래서 그 자식 푬의 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로 바꾸어 보아도 똑같네욤..... 어떻게 해야할지..
1  COMMENTS
  • Profile
    최용일 2003.09.09 01:02
    안녕하세요. 최용일입니다.

    델파이 폼은 대부분 그냥 FindWindow로 다 찾아지는데... 델파이 폼은 대부분 자식윈도우가 아니라 메인윈도우입니다. MS의 Spy++이나 델파이의 WinSight를 이용해서 윈도계층구조가 어떻게 되어 있는지 확인해보세요...

    제 생각엔 winHWND 이 윈도 핸들이 님이 찾고자 하는 핸들 같은데...

    ^^ 항상 즐코하세요...