【问题标题】:Selecting area rectangle on desktop [closed]在桌面上选择区域矩形[关闭]
【发布时间】:2012-05-08 18:53:05
【问题描述】:

我正在尝试在 C#.NET 中创建一个模仿 Windows 7 截图工具功能的应用程序,当应用程序运行时(或通过特定的击键或我选择启动它),用户可以无论哪个窗口有焦点,在屏幕上绘制一个矩形,以便捕获桌面的矩形快照。

我已经知道如何使用 Graphics.CopyFromScreen() 方法来保存给定特定矩形的快照,但我很难过的是实际的矩形选择以及如何从中获取边界。

【问题讨论】:

  • 目前还不清楚这里问的是什么,是关于如何在桌面上绘制一个矩形或获取正确的坐标,因此同样模糊的公认答案是对未来的访客没什么用,所以我关闭了它。如果你把你想要的东西说得更清楚,那么也许答案也可以更清楚,问题就重新开始了。

标签: c# .net graphics screenshot


【解决方案1】:

Code Project 上的TeboScreen: Basic C# Screen Capture Application 正是这样做的。

按住鼠标左键,用户绘制一个矩形,指定他们希望捕获的屏幕部分。 ... mouse_Move 事件用于决定用户是在绘制、拖动(移动)还是调整选择区域的大小。

【讨论】:

  • 正是我想要的,谢谢!
【解决方案2】:

用户实际上并没有在屏幕上绘制矩形,而是在捕获的图像上绘制。当用户调用您的工具时需要发生的事件顺序是:

  1. 捕获整个桌面
  2. 创建一个屏幕大小的无边框窗口(或跨越所有屏幕的窗口,可能使用此方法here),并将映射到屏幕位置/尺寸的单独图像设置为各自的屏幕截图。
  3. 允许用户使用代码here 在您的表单上进行橡皮筋选择。
  4. 用户完成区域选择后,创建一个与用户选择一样大的位图。
  5. 找到用户矩形与图像的交点
  6. 将这些区域一一复制到您在步骤 4 中创建的图像。
  7. 保存此图片。
  8. 喜极而泣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 2020-12-01
    • 2012-08-16
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多