我使用' MoveWindow'移动窗户。 (user32.dll)并且有一些奇怪的问题:如果我将两个窗口彼此相邻放置,它们之间似乎有一个小间距,即使它们的位置应该合适!我已在msdn上找到关于此问题的讨论,边框似乎是7像素(仅限Windows 10!)。
以下是使用3 cmd.exe的小例子:
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
// ...
MoveWindow(new IntPtr(6488704), 0, 0, 200, 100, true);
MoveWindow(new IntPtr(16975898), 200, 0, 200, 100, true);
MoveWindow(new IntPtr(1050266), 0, 100, 200, 100, true);
当然,我可以将窗口放置在距离原始位置7个像素的位置,并使边框消失。但问题出在这里:看起来边界对于不同的应用程序是不同的。这样,一些应用程序就可以了,其他应用程序重叠,因为边框只有5个像素或者其他东西。
有没有办法找到窗口的实际位置/大小?然后计算透明边框'?我真的迷失在这里,无法在互联网上找到任何东西。我也不明白为什么甚至有一个透明的边框。