2010-02-16 3 views
2

그냥 도전 해보려면, 화면의 특정 부분 (마우스 아래, 마우스 아래)을 확대하는 응용 프로그램을 작성하기로 결정했습니다. 이 작업을 수행하는 가장 좋은 방법은 양식 아래 공간의 스크린 샷을 찍고 양식을 확대하고 페인트하는 것입니다. 내가 타이머 내부 사진 스냅이 부분의 코드를 사용하고 있습니다 :Windows Forms 호출 창을 제외하고 전체 화면의 스크린 샷?

바탕 화면 얻기 위하여
timer1.Stop(); 
//Reposition window 
this.Left = Cursor.Position.X - this.Width/2; 
this.Top = Cursor.Position.Y - this.Height/2; 
//Bitmap to save image to 
Bitmap bmpScreenshot = new Bitmap(this.Width, this.Height, PixelFormat.Format32bppArgb); 
Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot); 
//Grab section of screen shot 
this.Opacity = 0.01; 
gfxScreenshot.CopyFromScreen(this.Left, this.Top, 0, 0, this.Size, CopyPixelOperation.SourceCopy); 
this.Opacity = 1; 
//Save to class level so Paint can paint it 
frame = bmpScreenshot; 
//Make Double Buffered Panel repaint 
dbPanel1.Invalidate(); 
timer1.Start(); 

(어떤 창 또는/내용이 존재) 형태로 아래를, 그래서 (0.01에 불투명도의 설정 클릭은 앱을 닫을 때 클릭 할 수 있습니다. 절대 0은 클릭 할 수 없음) 사진을 찍기 전에 스냅 샷을 찍은 후 1 번 ... 이것은 깜박임을 만듭니다. 불투명도를 변경하거나 양식을 숨기거나 표시하지 않고 양식 아래에있는 비트 맵을 얻을 수있는 방법이 있습니까? 앱이 시작된 순간의 스냅 샷뿐만 아니라 양식 아래에있는 이미지에 대한 라이브 이미지를 원합니다.

나는이 일을하는 다른 앱을 찾고 있지 않다. 나는이 문제에 접근 할 때 나는 해결책을 배울 수있다. 난 불투명도 (모든 종류의 수준), 표시 및 숨기기, SetVisibleCore (bool) 창을 사용하여 시도했지만 아무 것도 허용 수준을 깜박임을 낮추십시오. 이견있는 사람?

답변

0

커서로 확대 된 이미지 오프셋을 표시하는 것이 더 좋을 것이라고 생각합니다 (예 : iPhone 텍스트 선택/편집 인터페이스 참조). 화면 가장자리에 스마트 처리 기능을 추가하십시오. 그렇게하면 불투명도를 계속 변경할 필요가 없으며 양식의 이미지 및 배치 만 업데이트하면됩니다.

+0

결국 나는 그 방향으로 갈 수 있습니다 ... 나는이 문제를 해결하고이 문제를 해결하지 않고 해결할 수있는 해결책을보고 싶습니다. (내가 이것에 대해 생각할수록 더 많이 일어날 것입니다) –