C# 为什么在GetWindowRect函数中使用此选项

C# 为什么在GetWindowRect函数中使用此选项,c#,windows,winapi,C#,Windows,Winapi,我的英语不是很好,但我对c语言编码很感兴趣,所以如果我发了一个愚蠢的问题,我很抱歉。 无论如何,我读过关于GetWindowRecthandle,ref rect;我知道这个函数会将句柄的上/左和下/右返回到rect。但是为什么这个代码需要通过 矩形宽度=矩形宽度-矩形X; rect.Height=rect.Height-rect.Y; 重点是什么?GetWindowRect是否已经返回左上角和右上角的位置 他们为什么要修理它 在代码库中定义矩形结构的人没有遵循C头文件中结构上的名称。该结构具有

我的英语不是很好,但我对c语言编码很感兴趣,所以如果我发了一个愚蠢的问题,我很抱歉。 无论如何,我读过关于GetWindowRecthandle,ref rect;我知道这个函数会将句柄的上/左和下/右返回到rect。但是为什么这个代码需要通过

矩形宽度=矩形宽度-矩形X; rect.Height=rect.Height-rect.Y; 重点是什么?GetWindowRect是否已经返回左上角和右上角的位置

他们为什么要修理它

在代码库中定义矩形结构的人没有遵循C头文件中结构上的名称。该结构具有顶部、左侧、底部和右侧成员,它们保存矩形的屏幕坐标

您的代码通过获取坐标,然后将底部和右侧成员重新映射为高度和宽度来作弊。

在代码库中定义矩形结构的人没有遵循C头文件中结构上的名称。该结构具有顶部、左侧、底部和右侧成员,它们保存矩形的屏幕坐标


你的代码通过获取坐标,然后将底部和右侧的成员重新映射为高度和宽度来作弊。

我不清楚你在问什么,但是 您可以找到API信息

您将发现GetWindowRect只返回布尔值,而不返回RECT

但是,它会写入第二个参数以设置RECT结构


在他们最终修改了从GetWindowrect获取的rect的值之后。

我不清楚您在问什么,但是 您可以找到API信息

您将发现GetWindowRect只返回布尔值,而不返回RECT

但是,它会写入第二个参数以设置RECT结构


在他们最终修改从GetWindowrect获取的rect的值后。

只是一个错误的[DllImport]声明,使用矩形代替rect。所以他们后来不得不修复几何体。我能告诉他们他们很懒吗?只是一个糟糕的[DllImport]声明,使用矩形代替矩形。后来他们不得不修正几何体。我能告诉他们他们很懒吗?我明白了,非常感谢。我明白了,非常感谢。非常感谢,肖恩!它必须与RECT结构的约定一致,返回矩形的右下角坐标是独占的。换言之,右下角的像素正好位于矩形外。哦,现在,我明白了。再次感谢肖恩。在我读了你的帖子2-3遍之后。我解决了我的好奇心。这对我来说意义重大。因为你我才更聪明谢谢xD@Sean-谁在你的代码库中定义了矩形结构-讽刺?同样是Midrosoft::非常感谢你,肖恩!它必须与RECT结构的约定一致,返回矩形的右下角坐标是独占的。换言之,右下角的像素正好位于矩形外。哦,现在,我明白了。再次感谢肖恩。在我读了你的帖子2-3遍之后。我解决了我的好奇心。这对我来说意义重大。因为你我才更聪明谢谢xD@Sean-谁在你的代码库中定义了矩形结构-讽刺?同样的Midrosoft::
        // Get the size of the window to capture
        Rectangle rect = new Rectangle();
        GetWindowRect(handle, ref rect);

        // GetWindowRect returns Top/Left and Bottom/Right, so fix it
        rect.Width = rect.Width - rect.X;
        rect.Height = rect.Height - rect.Y;