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);
}
这个问题以前有没有发生过,或者知道如何解决?
对于getBound,您可以使用ClientRectangle属性,此属性返回绑定形式,并且dll(ScreenCaptureLib.dll)可帮助您用于桌面中的getImage。
http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=19415
首先,Region
实现了IDisposable
,因此您应该将其包装在using语句中,或者在完成后调用Dispose。
除此之外,我们还需要查看您的GetRegionByHWnd
和CaptureImage
代码。你真的需要那个代码吗?为什么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
问候