C# 如何相对于其他窗口使用MoveWindow?

C# 如何相对于其他窗口使用MoveWindow?,c#,interop,pinvoke,win32-process,C#,Interop,Pinvoke,Win32 Process,我想在其他窗口更改其大小时调整窗口大小。以下是场景 左侧窗口的索引为0,右侧窗口的索引为1。当左窗口向右调整大小时,我也需要调整右窗口的大小。为此,我正在使用 if (tempIndex==0) { MoveWindow(handles[tempIndex+1], rct.Right + 1, rect[tempIndex+1].Bottom, rect[tempIndex+1].Right - rct.Left - 1, rect[t

我想在其他窗口更改其大小时调整窗口大小。以下是场景

左侧窗口的索引为0,右侧窗口的索引为1。当左窗口向右调整大小时,我也需要调整右窗口的大小。为此,我正在使用

if (tempIndex==0)
            {

                MoveWindow(handles[tempIndex+1], rct.Right + 1, rect[tempIndex+1].Bottom, rect[tempIndex+1].Right - rct.Left - 1, rect[tempIndex+1].Bottom-rct.Top,true);
            }
rct是一种类型为
RECT
的结构。其中

private struct RECT
        {
            public int Left;
            public int Top;
            public int Right;
            public int Bottom;
        }
通过使用上述代码,右窗口将移动,但它会在屏幕外和屏幕下移动。我对此知之甚少。

有人能帮我吗?

要求不是很清楚。是否希望第二个窗口拉伸以适合显示器?它总是和第一扇窗户一样高吗?它是否总是与第一个窗口的宽度相同?当用户向右拉伸左窗口时,我需要按比例向右挤压左窗口。高度总是一样的。但是很明显,右窗口的宽度将会改变。你可能需要考虑屏幕大小,并使用Math.Max来确保你不会离开屏幕。见: