【问题标题】:Supporting multi-monitors支持多显示器
【发布时间】:2009-10-27 14:53:01
【问题描述】:

我想在我的应用程序中提供多显示器支持。

在过去,我有一个简单的观点,即多显示器支持只是缺少开放的多显示器相关错误。如果它似乎适用于多显示器设置,那么它支持多显示器,对吧?

但我想对此提出一些明确的要求。

为了满足大多数用户的期望,我需要遵守哪些基本要求,以便他们可能会说“是的,此应用程序支持多显示器”?

例如,一个明显的要求是所有窗口/消息框/工具提示等必须在应用程序所在的同一监视器上打开。这些窗口的任何子窗口都必须在与其父窗口相同的监视器上打开。

你还能想出更多吗?是否有任何关于这方面的指导方针?

【问题讨论】:

  • 消息框应该显示在活动窗口的顶部——假设您的应用程序可以有多个打开的窗口,这些窗口可以移动到不同的监视器上
  • 谢谢,你是对的,我已经更新了问题的那一部分。

标签: requirements multiple-monitors


【解决方案1】:
  • 如果应用程序上次在多显示器设置中使用,并且在没有插入任何其他显示器的情况下第二次启动,请让您的应用程序感知到这一点,并将所有框和工作区域重新返回到主屏幕。

(Eclipse 不这样做,这让我很恼火)

【讨论】:

    【解决方案2】:

    让我非常高兴的是一个应用程序,它可以记住所有窗口的位置(无论是在主监视器还是第二个监视器上),并在我启动应用程序时以相同的布局重新显示所有内容。

    【讨论】:

      【解决方案3】:

      从个人经验中需要注意的一些问题(无论如何使用 GDI 和 Direct3D9):

      • 当两个监视器具有不同的位深度,并且用户扩展窗口以覆盖两个监视器或将其从一个监视器拖到另一个时...如果您的应用程序没有预料到它可能会变得丑陋。当系统可能将 8 位托盘化显示器与更高位深的 RGB 显示器混合使用时,曾经更让人头疼(尽管请注意,对于某些专门的应用程序,这种配置仍然存在)。

      • 如果您将在一个“D3D 设备”上创建的 Direct3D 窗口(全部或部分)拖到另一个显示器上,可能需要注意这些窗口。根据您设置设备的方式,Windows 要么在另一台显示器上不显示任何内容,要么显示内容但具有大量 CPU 处理 overhead(足以杀死高帧率)。 (无论如何,这在 XP 上都是如此)。

      【讨论】:

        【解决方案4】:

        我一直认为这是操作系统的责任。在 Mac 上似乎是这样。唉,我在 Windows 中遇到了很多在双显示器上表现不佳的应用程序,尽管我倾向于将其归咎于显卡。

        我最大的抱怨是坚持只使用 MDI 界面的应用程序。如果您的屏幕空间有限,MDI 非常棒,但是当您实际上有很多屏幕空间并且希望浮动托盘/文档彼此分开时会变得非常烦人。

        【讨论】:

          猜你喜欢
          • 2021-06-29
          • 1970-01-01
          • 2020-07-27
          • 2015-12-23
          • 2010-09-25
          • 1970-01-01
          • 1970-01-01
          • 2014-04-20
          • 1970-01-01
          相关资源
          最近更新 更多