在最大化的delphi表单中,如何获取表单的还原状态位置和大小?我知道在.NET中,我们使用RestoreBoundsDesktopBound

最佳答案

VCL框架没有公开这一点。相反,您需要使用Win32 API。您需要的功能是GetWindowPlacement

var
  WindowPlacement: TWindowPlacement;
....
WindowPlacement.length := SizeOf(WindowPlacement);
Win32Check(GetWindowPlacement(Form.Handle, WindowPlacement));


您需要的信息可以在WindowPlacement结构中找到。请注意,坐标是相对于工作区域而不是屏幕进行报告的。

通常,您需要此信息,以便以后可以恢复它。使用SetWindowPlacement来做到这一点。

09-27 21:26