2011-01-05 1 views

답변

3

나는이 blog post이 도움이 될 것입니다 생각합니다.

using (Bitmap bitmap = new Bitmap(ParentForm.Size.Width, ParentForm.Size.Height)) 
{ 
    using (Graphics g = Graphics.FromImage(bitmap)) 
    { 
     g.CopyFromScreen(new Point(ParentForm.DesktopLocation.X, ParentForm.DesktopLocation.Y), new Point(0, 0), ParentForm.Size); 
    } 

    bitmap.Save(@"C:\test.jpg", ImageFormat.Jpeg); 
} 
+1

이 작업을 수행하는 창이 가장 앞쪽에 있지 않으면이 앞에 무엇이든 복사하지 않겠습니까? – cHao

+0

잘 모르겠습니다. 나는 시도 할 것이다. –

+0

많은 도움을 주신 덕분에 많은 도움이되었습니다. 그러나 Cahao는 양식이 TopMost가 아니라면 작동하지 않을 것입니다. 즉, 검은 색 사각형 만 인쇄 할 양식을 최소화하면 어떻게됩니까? – Burimi

1

그것을 시도하지 마십시오,하지만 난 당신이 만든있는 PaintEventArgs로 OnPaint(args)를 호출 할 수 있어야한다고 생각 것, 그것은 당신이 그리는하고자하는 이미지에 대한 그래픽을 포함하고 ClipRectangle는 전체 영역을 포괄 형태.

양식이 페인트 메시지를 올바르게 처리하는 경우 (예 : 창을 완전히 다시 칠할 수있는 충분한 정보를 저장하는 경우) 클라이언트 영역 만 얻을 수 있습니다 (즉, 제목 표시 줄 또는 메뉴).