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来确保你不会离开屏幕。见: