在最大化的 Delphi 窗体中,如何获取窗体还原时的位置和大小?我知道在 .NET 中,我们使用
RestoreBounds
和 DesktopBound
。这个功能不是由VCL框架暴露的,相反你需要深入Win32 API。你需要的函数是GetWindowPlacement
。
var
WindowPlacement: TWindowPlacement;
....
WindowPlacement.length := SizeOf(WindowPlacement);
Win32Check(GetWindowPlacement(Form.Handle, WindowPlacement));
WindowPlacement
结构中找到。请注意,坐标是相对于工作区而不是屏幕报告的。SetWindowPlacement
来实现。
TJvFormPlacement
和TJvFormStorage
组件,可自动将窗体的边界保存/恢复到注册表、ini或DB中。 - Arioch 'The