我遇到了一个问题,我必须检查具有位置 X 和 Y 以及宽度和高度的表单是否包含在从具有矩形 X、Y、宽度和高度的窗口中检索到的矩形对象中。我在使用 winforms 时有以下代码。如果您在窗口边界之外,这段代码应该返回 false!
if (!(this.Location.Y > rect.Y && this.Location.Y < ((rect.Y + rect.Height) - this.Height)) || !(this.Location.X > rect.X && rect.X < ((this.Location.X + rect.Width) - this.Width)))
我通过使用以下代码得到矩形:
IntPtr hWnd = FindWindow(null, this.windowTitle);
RECT rect;
GetWindowRect(hWnd, out rect);
这是表单,rect 是从窗口创建的矩形对象。