如何将表格最大化到桌面大小?
在 Windows 10 上运行的 Delphi 10.4.2 Win32 VCL 应用程序中,在双显示器设置中,当我将 MainForm(或任何其他辅助窗体)设置为通过设置开始最大化时WindowState := wsMaximized,该窗体仅在主监视器上最大化。
如何将表单最大化到整个桌面,以将表单大小设置为包括两个监视器?是否有类的内置方法TForm来实现这一点?
回答
一般来说,这个问题并不像你想象的那么简单。我想你正在想象这样的桌面:
在这种情况下,我假设您希望窗口像这样放置:
但是,如果用户有这个布局怎么办:
你想要
(整个窗口可见,但一些屏幕空间未使用)或
(没有未使用的空间,但窗口的某些部分不可见)?
如果你想使用完整的虚拟桌面空间——最后一种情况——虽然很容易:
BoundsRect := Screen.DesktopRect;
这将在一个简单的设置中完成预期的事情,并且一般来说“没有未使用的空间,但窗口的某些部分可能不可见”。
另请注意,Windows 不喜欢这样的窗口行为,因此用户在使用该应用程序时可能无法获得良好的体验。
一般来说,不要这样做。
请注意,即使是两台显示器都是横向的双显示器设置,也可能很重要:
即使两个显示器的尺寸相同,几何形状也可能不重要: