Working With System.Drawing.Region

本文关键字:Region Drawing System With Working | 更新日期: 2023-09-27 17:59:05

我制作了一个测试WindowForm应用程序,它根据窗口的边界获取窗口的快照。但我似乎无法满足GetBounds()的需要。他想要图形,但它已经包含了边界,我只想要他的点和大小:

private void CaptureBtn_Click(object sender, EventArgs e)
{
    Region region = GetRegionByHWnd(GetForegroundWindow());
    Rectangle rectangle = new Rectangle(
                                        region.GetBounds().Location,
                                        region.GetBounds().Size);
    CaptureImage(rectangle.Location, Point.Empty, rectangle.Size);
}

这个问题以前有没有发生过,或者知道如何解决?

Working With System.Drawing.Region

对于getBound,您可以使用ClientRectangle属性,此属性返回绑定形式,并且dll(ScreenCaptureLib.dll)可帮助您用于桌面中的getImage。

http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=19415

首先,Region实现了IDisposable,因此您应该将其包装在using语句中,或者在完成后调用Dispose。

除此之外,我们还需要查看您的GetRegionByHWndCaptureImage代码。你真的需要那个代码吗?为什么someWindow.Bounds不适合你?

也许这有帮助:矩形

我不知道你的方法像captureimage。但也许你需要控制的相对位置?点对客户端/点对屏幕

如果没有,请告知您希望获得的数据以及您收到的数据。

还可以查看RECT MSDN类型,而不是Rectangle类型。

这里有一些好文章:

http://www.codeguru.com/csharp/csharp/cs_graphics/screencaptures/article.php/c6139

http://cid-32fd2eb6551ddb56.office.live.com/self.aspx/.Public/CaptureWindow.rar?sa=170500830

http://winapi.freetechsecrets.com/win32/WIN32Capturing_an_Image.htm

问候