2012-05-08 43 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. 为喜悦而哭泣。