Supporting Multiple-Display Environments
Multiple-display configurations have long been valued by creative professionals and presenters alike. Many mobile PCs include a display connector that can attach an external monitor or projector. In this context, the term primary display refers to the display assigned by the user to be the main display. The term secondary display refers to an additional display connected to the mobile PC. On a mobile PC, a primary display can be either the built-in display or an external monitor connected using a cable.
The following illustration shows three ways that you can use an external display.
Display configurations on mobile PCs are transient by nature. A user might plug into an external monitor at work, and a few hours later disconnect from the monitor to give a presentation in another location. Upon arrival at that location, he might connect to a projector in an auditorium or classroom. That evening, he might return home and connect to the monitor in his home office. An application running in such an environment must be able to adapt to the changing display setup.
Prior to Windows Vista, the configuration of external monitors and projectors was a complex and error-prone process in the following ways:
- Connections to and disconnections from external monitors went undetected, forcing users to struggle with unintuitive display settings and function keys.
- Applications were left stranded in an inaccessible display area when a monitor or projector was disconnected.
- Display configurations were not saved, so users had to repeat the same configuration steps each time they reconnected to a monitor or projector.
Windows Vista users enjoy a much better experience, thanks to improvements in how the operating system and the applications that run on it adapt to the changing display environment.
Windows Vista eliminates a number of the past difficulties with external monitors by providing a new driver model that automatically detects monitor and projector connections, smarter display-configuration routines, and new window management features. These improvements should encourage users to use external monitors.
In Windows Vista, users who connect to an external monitor can experience a smooth experience, similar to the Plug and Play experience provided with USB devices.
Application designers can build on these external monitor improvements in Windows Vista by creating display-aware applications. Make sure application windows are visible on the displays currently attached to the mobile PC, and that the windows appear in predictable places. By default, Windows Vista starts applications within the region of the primary display, and displays child windows on top of the parent window.
The user might be running your application on the secondary display. When displaying additional windows, place them so that they initially overlap the parent window. A window that's associated with an application should appear in the area of the user's visual focus and on the same monitor as the parent window.
When restoring tool palettes and other floating windows, place them relative to the location of the parent window.
Some applications save window positions and layouts so that they can be restored during later sessions. Preserving window layouts is a practice that users often appreciate. When restoring window positions, be aware that the display environment may have changed since the settings were last saved. If you restore a window to its last known location, confirm that the window is still viewable in its restored location. You can compare the proposed location with the display area that is made available by the attached displays.
If the user runs an application that appears on an external monitor that is then disconnected, Windows Vista moves the window over to the primary display so that it remains visible. Consider minimizing your application when this happens, so that the user doesn't end up with a jumble of windows on the primary display. The user can easily restore the application by clicking the appropriate taskbar button.
Build date: 2/8/2011