Managing multiple windows will become essential for any application, either through part of a layout design like the preceding, or for presenting important information to the user to gain their attention or receive their input. For each window that's displayed in your application, it's important to know whether its appearance should attract their immediate attention, support what's already onscreen, or simply be something that can be attended to later. Knowing the intention of each window shown will help to support, rather than impede, the user workflow and keep your application's user experience clean.
The most common reason to show an additional window during application flow is to ask the user for additional input or confirmation, or to alert them of (typically unexpected) events. These are standard interactions and so it's usually most effective to use, where possible, the provided dialog windows defined by the toolkit being used....