我正在尝试保存/恢复 a 的窗口大小、状态和位置,System::Windows::Forms::Form
并希望确保如果该窗口以前位于另一台监视器上并且应用程序在只有一个 snogle 监视器可用时启动,它将自己放置在某个地方在屏幕上。
那么如何确定当前桌面大小以及我的应用程序是否超出范围?
我正在尝试保存/恢复 a 的窗口大小、状态和位置,System::Windows::Forms::Form
并希望确保如果该窗口以前位于另一台监视器上并且应用程序在只有一个 snogle 监视器可用时启动,它将自己放置在某个地方在屏幕上。
那么如何确定当前桌面大小以及我的应用程序是否超出范围?
实际上,最好的解决方案是在 user32.dll中使用本机方法GetWindowPlacement和SetWindowPlacement 。这些会自动处理所有边缘情况。
可以在http://jake.ginnivan.net/2010/04/remembering-wpf-windows-position-2/找到使用它们的示例 WPF 实现,您可以对 WinForms 执行相同的操作。
你看过Screen课吗?
该Screen.WorkingArea
属性将为您提供显示器的桌面大小。