Stingray® Foundation : Chapter 7 Layout Manager : Issues with Resizable Windows
Issues with Resizable Windows
Whenever you create a dialog, property page, frame window or any other window that contains child windows, you need to decide what to do when the user tries to resize it. You could forbid the resize event, but this leads to an awkward user interface. You could ignore the event, but this leads to an underutilized window with a disproportionate amount of empty space. Finally, you could trap the size event and code your own custom layout logic. Unfortunately, this requires a large amount of implementation-specific code that is time consuming to create. The code is also subject to change whenever you want to modify the window’s layout. In addition, if you want to achieve resolution-independent positioning, even more work is required.
The Stingray Foundation Library provides a powerful layout management framework that encapsulates all the details of laying out your child window controls, so that you can concentrate on content rather than the mechanics of your user interface presentation.
With the layout management framework, you do not need to consider hard-coded pixel positions that are difficult to write and even harder to maintain. You can establish your desired layout with a simple series of layout “constraints” that are easy to remember and change. As an added benefit, the use of a relative constraint-based layout algorithm guarantees that your window or dialog appears the same way everywhere, be it a 640x480 laptop or a 1600x1200 workstation.