Q&A

  • 현재 폼위의 특정부분만 이미지로 만드는 방법좀~~

exefile := 'C:winntnotepad.EXE';
WINEXEC(PCHAR(exefile),SW_HIDE);
wnd := FindWindow('notepad',nil );                // 노드패드에 핸들 구하기
Windows.SetParent(wnd, Form1.Handle);       // 실행프로그램의 부모를
                                                                      현재폼으로 설정
SetWindowPos(wnd,HWND_TOPMOST,0, 0, clientwidth,
                       clientheight,  SWP_NOZORDER or SWP_SHOWWINDOW );

위와 같이 폼위에 Notepad를 얻었습니다.
그런데 NotePad의 부분만 캡쳐 하려면 어떻게 하면 되는지 궁금합니다.


※ 아래와 같이Form1의 Canvas를 이용했더니,
     Notepad위에 어떤 프로그래램이 올라오니까
     가려진 Notepad의 일부만 이미지되더라구요.
     방법좀 부탁드립니다.    

   TempBmp            := TBitmap.Create;    // BMP를 저장할 bitmap 생성
   TempBmp.Width   :=  Form1.Width;        
   TempBmp.Height  :=  form1.Height;      
   TempRect            := Rect(Form1.Left, Form1.Top, Form1.width,
                                         Form1.Height);

   FormDC                   := GetWindowDC(Form1.Handle);
   FormCanvas            := TCanvas.Create;
   FormCanvas.Handle :=  FormDC;  // 전체 Form1의 canvas를 얻습니다

   TempBmp.Canvas.CopyRect(TempRect, FormCanvas, TempRect);
   Image1.Picture.Bitmap.Assign(TempBmp);
0  COMMENTS