Работа с System.Drawing.Region - PullRequest
2 голосов
/ 11 июня 2011

Я сделал тестовое 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);
}

Раньше кто-нибудь сталкивался с этой проблемой или знает, как ее исправить?

Ответы [ 3 ]

1 голос
/ 13 июня 2011

Для getBound некоторые окна для вас могут использовать свойство ClientRectangle. Это свойство возвращает связанную форму, и эта dll (ScreenCaptureLib.dll) помогает вам получить getImage на рабочем столе.

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

1 голос
/ 11 июня 2011

Во-первых, Region реализует IDisposable, поэтому вы должны заключить его в оператор using или вызвать Dispose, когда закончите с ним.

Кроме этого нам нужно будет увидеть ваш код для GetRegionByHWnd и CaptureImage. Вам действительно вообще нужен этот код? Почему someWindow.Bounds не работает для вас?

0 голосов
/ 11 июня 2011

Возможно, это поможет: RECTANGLE

Я не знаю ваших методов, таких как захват изображения.Но, возможно, вам нужно относительное положение для контроля? Укажите на клиента / Укажите на экране

Если нет, сообщите, какие данные вы ожидаете получить и что вы получаете.

Также примитеищите тип 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

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...