为什么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 documentation,ptMaxPosition
包含'窗口最大化时窗口左上角的坐标。'
答案 0 :(得分:-1)
因为在最大化时将其设置在屏幕外的1个像素,所以隐藏部分帧。请记住,窗口大小不是客户区域大小,但包括框架和顶部栏。
最大化时隐藏了1个像素。