Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GetWindowRect没有按我认为的那样工作_C#_Winapi_Overlay - Fatal编程技术网

C# GetWindowRect没有按我认为的那样工作

C# GetWindowRect没有按我认为的那样工作,c#,winapi,overlay,C#,Winapi,Overlay,我正在为游戏精英危险设置覆盖程序。 当窗口移动时,覆盖层不希望保持游戏窗口的大小。 每当移动窗口时,覆盖层都会相对于程序展开和缩回,我不希望这样。 这是一段显示问题的视频 我在谷歌上搜索了几个小时,试图解决这个问题,但我根本找不到任何答案。 我所能找到并修复的只是左上角的位置,而不是不断扩大的问题 公共静态外部bool GetWindowRect(IntPtr hwnd,out Rectangle IpRect); [返回:Marshallas(UnmanagedType.Bool)] [Dll

我正在为游戏精英危险设置覆盖程序。
当窗口移动时,覆盖层不希望保持游戏窗口的大小。
每当移动窗口时,覆盖层都会相对于程序展开和缩回,我不希望这样。
这是一段显示问题的视频

我在谷歌上搜索了几个小时,试图解决这个问题,但我根本找不到任何答案。
我所能找到并修复的只是左上角的位置,而不是不断扩大的问题

公共静态外部bool GetWindowRect(IntPtr hwnd,out Rectangle IpRect);
[返回:Marshallas(UnmanagedType.Bool)]
[DllImport(“user32.dll”,SetLastError=true)]
私有静态外部bool GetWindowInfo(IntPtr hwnd,ref WINDOWINFO pwi);
私有矩形_newWindowSize;
私有无效时间位置覆盖窗口标记(对象发送方,事件参数e)
{
GetWindowRect(句柄,out\u newWindowSize);
Top=\u newWindowSize.Top+31;
左=_newWindowSize.Left+8;
宽度=_newWindowSize.Width;
高度=_newWindowSize.Height;
Console.WriteLine($“{u newWindowSize}”);
}
我希望大小应该与游戏窗口大小完全相同。

不展开和缩回。

因为矩形不是矩形。它们似乎包含相同的信息,但它们是非常非常不同的对象

假设您是一个方法,并且您希望有一本练习本将您的数据写入其中。如果我递给你一本练习本,你就知道要打开它,打开封面,把你的数据写在里面。然后你把书还给我

另一方面,如果我递给你一本字典,你可以打开封面,但是你可以把你的数据写在单词定义上,然后把结果交给我。我看了看,但我无法理解这些数据,或者这些词,因为它们混在一起了

如果一个例程需要一个特定的结构,就给它一个。否则,它会把你给它的东西当作它所要求的结构,没有人会高兴的

所以你应该做的是:

封装它:编写一个接受/返回矩形的方法,但是 它在内部创建RECT并将其交给GetWindowRect 功能


Rectangle
是否与
LPRECT
兼容?@500 InternalServerError我正在为_newWindowSize使用内置的矩形变量,我不知道它是否与LPRECT兼容。它不兼容,RECT没有宽度和高度@我用的是矩形,它有宽度和高度,这是你的错误。你必须声明你自己是正确的。