|
안녕하세요
제가 보기에는 현재 캡쳐 하시려는 윈도우의 핸들을 얻어야 할것같습니다.
FindWinodwEx 함수를 쓰셔서 현재 메인 윈도우의 하위 윈도우를 찾아 가셔야
할것으로 생각 됩니다. 아니면 VC++ 의 spy++툴을 사용하셔서
캡쳐하시려는 윈도우의 클래스 이름을 얻은 다음 FindWindow로 핸들을 찾으셔서 아래와
같이 하시면 되겠습니다.
이미지 파일로의 저장은 Image1->Picture->SaveToFile함수를 사용하시면 되겠습니다.
그럼 즐거운 하루 되십시요.
남정태 님이 쓰신 글 :
: "정보문화사 Borland C++ Builder Programming Bible" 책에 있는 내용을 써서 캡쳐는 되었는데요,,,
: 제가 그림에 표시한 부분만 캡쳐를 하고 싶습니다.
: 여기서 이 특정영역을 찾아서 캡쳐를 하면 될 것 같은데 방법을 모르겠습니다.
: 보시는 분은 방법 좀 알려주세요.
:
: 책에 있는 소스 그대롭니다. 바꾼 건 폼이랑, 클래스 이름밖에 없습니다.
: HWND cphandle = FindWindow("TAtrialForm", NULL);
: if (cphandle) {
: HDC dc = GetWindowDC(cphandle);
: Graphics::TCanvas *ScreenCanvas = new Graphics::TCanvas;
: ScreenCanvas->Handle = dc;
:
: TRect rect = ScreenCanvas->ClipRect;
: //rect.Right = rect.Right; - rect.Left;
: //rect.Bottom = rect.Bottom; - rect.Top;
: //rect.Top = 0;
: //rect.Left = 0;
: CaptureForm->Width = rect.Right+7;
: CaptureForm->Height = rect.Height()+7;
: CaptureForm->Image1->Picture->Bitmap->Width = rect.Right;
: CaptureForm->Image1->Picture->Bitmap->Height = rect.Height();
: CaptureForm->Image1->Picture->Bitmap->Canvas->CopyRect(rect, ScreenCanvas, ScreenCanvas->ClipRect);
: delete ScreenCanvas;
: ReleaseDC(cphandle, dc);
: }
:
: 그리고 Image 컨트롤의 그림을 파일로 저장하려면 어떻게 하면 되나요?
:
|