Если же наоборот, необходимо одновременно получить доступ к нескольким
файлам в рамках выполнения одного задания, следует использовать другую
технику управления окнами, например, MDI.
Разбиение окна на подокна может быть установлено либо разработчиком
приложения (как основная форма окна), либо пользователем, посредством
задания соответствующего параметра. Для того чтобы поддерживать разбиение
окна, которое не определено заранее, включите в состав создаваемой программы
так называемый блок разделения. Блок разделения является специальным
элементом управления, который отображается в конце полосы прокрутки окна и
обозначает регулируемую границу между подокнами. Размер блока разделения
должен быть достаточно большим, чтобы пользователь мог работать с ним,
используя указатель мыши.
Пользователь может изменять размеры подокон, перемещая блок разделения в
нужную позицию. Когда указатель мыши находится над блоком разделения,
целесообразно изменить его образ, чтобы обеспечить обратную связь и помочь
пользователю правильно установить блок разделения. С той же целью
рекомендуется отображать контуры перемещаемого блока разделения и полосы
разделения (границы подокон) до тех пор, пока пользователь не закончит
операцию (рис. 4.10).
Рис. 4.10. Перемещение границы подокон
Вы можете разрешить перемещение полосы разделения (или блока
разделения) в конец полосы прокрутки. При этом одно из подокон окажется
закрытым. Дополнительно вы можете определить двойной щелчок ЛКМ в
некоторой позиции, заданной по умолчанию (например, в середине окна) как
ускоренный способ разбиения окна или для удаления разделения. Такой способ
наиболее удобен в тех случаях, когда результирующие подокна должны быть
одного размера.
Для того, чтобы обеспечить клавиатурный интерфейс для разбиения окна,
включите во всплывающем меню окна (или в раздел меню View) команду Разде-
лить. Когда пользователь выбирает эту команду, разделите окно посередине или
в контекстно-определенной позиции.
Для перемещения блока разделения могут быть использованы клавиши управ-
ления курсором; нажатие клавиши <Enter> устанавливает разделение в текущей
позиции, а нажатие клавиши <Esc> отменяет режим разделения.
Для разделения окна могут применяться и другие средства. Например, вы
можете определить специальные режимы отображения окна, которые позволяют
пользователю выбирать фиксированное или изменяемое расположение подокон,
либо удалять разделение окна, закрывая подокно (или используя какую-либо
другую команду управления форматом окна).
Когда пользователь разделяет окно, дополните его полосами прокрутки для
тех подокон, которые этого требуют. Кроме того, следует разместить
информацию в подокнах таким образом, чтобы полоса разделения не закрывала
содержимое окна, над которым она появляется. Используйте одну общую полосу
прокрутки для тех подокон, которые перемещаются вместе; если же каждое из
подокон требует независимую прокрутку, полоса прокрутки должна создаваться
в каждом из них. Например, если основное окно разделено на подокна по
горизонтали, то, очевидно, каждое из них должно иметь собственную
вертикальную полосу прокрутки, управляемую отдельно.