2012-05-08 45 views
7

我試圖在C#.NET中創建一個應用程序,它模仿Windows 7剪切工具的能力,當應用程序運行時(或者通過特定的按鍵或者我選擇啓動它),用戶可以在屏幕上繪製一個矩形,不管哪個窗口具有焦點,以捕獲桌面的矩形快照。在桌面上選擇區域矩形

我已經知道如何利用Graphics.CopyFromScreen()方法來保存給定一個特定矩形的快照,但在哪裏我被難倒了實際的矩形選擇以及如何從中獲取邊界。

+0

這裏並不清楚這裏提出的問題,無論是關於如何在桌面上繪製一個矩形或獲得正確的座標,因此接受的答案同樣模糊,對於未來的遊客,所以我關閉了它。如果你確切地說明了你所要求的內容,那麼也許答案也會變得更加清晰,並且問題重新開放。 –

回答

7

代碼項目上的TeboScreen: Basic C# Screen Capture Application完全是這樣。

按住鼠標左鍵,用戶繪製一個矩形,指定他們希望捕捉屏幕的哪一部分。 ... mouse_Move事件用於決定用戶是否正在繪製,拖動(移動)或調整選擇區域的大小。

+0

正是我在找的東西,謝謝! –

1

用戶實際上並未在屏幕上繪製矩形,而是在捕獲的圖像上繪製矩形。事件的需要,當用戶調用您的工具發生的順序是:

  1. 捕獲整個桌面
  2. 創建一個無國界的窗口在屏幕的跨越所有屏幕,也許用這個大小(或一個方法here),並將映射到屏幕位置/尺寸的單獨圖像設置爲各自的屏幕截圖。
  3. 允許用戶在您的表格上使用代碼here進行橡皮筋選擇。
  4. 一旦用戶選擇完該區域,就創建一個與用戶選擇一樣大的位圖。
  5. 查找用戶的交叉與您的圖像矩形
  6. 複製這些地區逐一在步驟4
  7. 保存此圖像創建的圖像。
  8. 爲喜悅而哭泣。