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