如何以编程方式确定桌面的大小?
我正在尝试保存/恢复 System::Windows::Forms::Form
的窗口大小、状态和位置,并希望确保该窗口之前是否位于另一台显示器上,并且当只有 snogle 监视器可用时,应用程序启动,它将自己放置在屏幕上的某个位置。
那么如何确定当前桌面大小以及我的应用程序是否越界呢?
I'm trying to save / restore the window size, state and position of a System::Windows::Forms::Form
and want to make sure that if the window was previously on another monitor and the app is started up when only a snogle monitor is available, that it puts itself somewhere on-screen.
So how can I determine the current desktop size and whether my application is out of bounds?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实际上,最好的解决方案是使用本机方法 GetWindowPlacement 和user32.dll 中的 SetWindowPlacement。它们会自动处理所有边缘情况。
使用它们的示例 WPF 实现可以在 http:// /jake.ginnivan.net/2010/04/remembering-wpf-windows-position-2/ 由此您可以对 WinForms 执行相同的操作。
Actually, the best solution would be to use the native methods GetWindowPlacement and SetWindowPlacement in user32.dll. These automatically handle all the edge cases.
A sample WPF implementation using them can be found at http://jake.ginnivan.net/2010/04/remembering-wpf-windows-position-2/ From that you could do the same for WinForms.
您是否看过 Screen 类?
Screen.WorkingArea
属性将为您提供显示器的桌面尺寸。Have you looked at the Screen class?
The
Screen.WorkingArea
property will give you the desktop size of your display.