我希望我的应用程序提供多显示器支持。
以前,我简单地认为多显示器支持仅仅是没有与多显示器相关的漏洞。如果在多显示器设置上似乎正常工作,那么它就支持多显示器了,对吗?
但我想明确一些要求。
为了满足大多数用户的期望,让他们说“是的,这个应用程序支持多显示器”,我需要遵循哪些基本要求呢?
例如,一个显而易见的要求是所有的窗口/消息框/工具提示等必须在应用程序所在的同一个显示器上打开。并且,这些窗口的子项必须在其父项所在的同一个显示器上打开。
您能想到更多的要求吗?有关此事的任何指南吗?
我希望我的应用程序提供多显示器支持。
以前,我简单地认为多显示器支持仅仅是没有与多显示器相关的漏洞。如果在多显示器设置上似乎正常工作,那么它就支持多显示器了,对吗?
但我想明确一些要求。
为了满足大多数用户的期望,让他们说“是的,这个应用程序支持多显示器”,我需要遵循哪些基本要求呢?
例如,一个显而易见的要求是所有的窗口/消息框/工具提示等必须在应用程序所在的同一个显示器上打开。并且,这些窗口的子项必须在其父项所在的同一个显示器上打开。
您能想到更多的要求吗?有关此事的任何指南吗?
(Eclipse不会这样做,这让我非常恼火)
让我非常开心的是一个应用程序能记住它所有窗口的位置(无论它们在主监视器还是第二个监视器上),并在我启动应用程序时以相同的布局重新显示所有内容。
从个人经验来看,有几个需要注意的问题(至少在使用GDI和Direct3D9时):
当两个显示器具有不同的位深度,并且用户将窗口扩展到覆盖两个显示器或从一个显示器拖动到另一个显示器时...如果您的应用程序没有预料到这种情况,那么可能会出现问题。以前在系统中可能会将8位调色板显示器与更高位深度的RGB显示器混合使用(尽管请注意,某些专业应用程序仍然存在这样的配置),这种情况会更加麻烦。
在一个“D3D设备”上创建的Direct3D窗口,如果您将它们拖到另一个显示器上(全部或部分),则可能需要进行调整。根据设备的设置方式,窗口要么在另一个显示器上不显示任何内容,要么显示内容但需要大量的CPU处理开销(足以降低高帧率)。 (至少在XP上是这样的)。
我一直以为这是操作系统的责任。在 Mac 上看起来确实是这样。可惜,在 Windows 上,我遇到了很多应用程序在双屏幕上表现不佳,尽管我倾向于把这归咎于显卡。
我最大的抱怨是那些坚持只使用 MDI 界面的应用程序。如果您的屏幕空间有限,MDIs 很棒,但当您实际拥有大量屏幕空间并希望将弹出窗口/文档分开时,它们会变得非常烦人。