为什么GetWindowPlacement总是返回MaxPosition -1,-1?

时间:2014-08-04 16:44:35

标签: c#

为什么GetWindowPlacement总是为MaxPosition返回(-1,-1)?到目前为止,我还没有得到任何其他结果。

var f = new Form();
f.Show();
// Position in second monitor
f.Bounds = new Rectangle(2100, 10, 200, 200);
f.WindowState = FormWindowState.Maximized;

var wp = new User32.WINDOWPLACEMENT { Length = Marshal.SizeOf<User32.WINDOWPLACEMENT>() };
if (!User32.GetWindowPlacement(f.Handle, ref wp)) throw new Win32Exception();

// wp.ptMaxPosition.X == -1 and wp.ptMaxPosition.Y == -1

根据the documentationptMaxPosition包含'窗口最大化时窗口左上角的坐标。'

1 个答案:

答案 0 :(得分:-1)

因为在最大化时将其设置在屏幕外的1个像素,所以隐藏部分帧。请记住,窗口大小不是客户区域大小,但包括框架和顶部栏。

最大化时隐藏了1个像素。