如何以编程方式确定桌面的大小?

发布于 2024-09-06 10:17:54 字数 172 浏览 5 评论 0原文

我正在尝试保存/恢复 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不离久伴 2024-09-13 10:17:54

实际上,最好的解决方案是使用本机方法 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.

吃→可爱长大的 2024-09-13 10:17:54

您是否看过 Screen 类?

Screen.WorkingArea 属性将为您提供显示器的桌面尺寸。

Have you looked at the Screen class?

The Screen.WorkingArea property will give you the desktop size of your display.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文