Меню многодокументного интерфейса
Рамочное окно приложения MDI должно включить в себя строку меню с системным меню окна. Системное меню окна должно включать в себя пункты, которые упорядочивают дочерние окна внутри рабочего окна, или оно закрывает все дочерние окна. Системное меню окна типичного приложения MDI может включить в себя пункты в следующей ниже таблице.
Пункт меню | Предназначение |
---|---|
Tile | Упорядочивает дочерние окна в формате мозаичного изображения (неперекрывающего расположения) так, чтобы каждое появилось полностью в рабочем окне. |
Cascade | Упорядочивает дочерние окна в каскадном формате. Дочерние окна накладываются друг на друга, но заголовок окна каждого - видим. |
Arrange Icons | Выстраивает значки свернутых дочерних окон по основанию рабочего окна. |
Close All | Закрывает все дочерние окна. |
Всякий раз, когда дочернее окно создается, система автоматически добавляет в конец новый пункт к системному меню окна. Текст пункта меню является одним и тем же что и текст в строке меню нового дочернего окна. Щелкая по пункту меню, пользователь может активизировать соответствующее дочернее окно. Когда дочернее окно разрушается, система автоматически удаляет соответствующий пункт из системного меню окна.
Система может добавить до десяти пунктов к системному меню окна. Когда создается десятое дочернее окно, система добавляет пункт More Windows (Больше окон) к системному меню окна. Щелчок по этому пункту показывает на экране диалоговое окно Select Window (Выбор окна). Диалоговое окно содержит список с заголовками всех дочерних окон MDI, доступных в текущий момент. Пользователь может активизировать дочернее окно, щелкая по его заголовку в списке.
Если ваше приложение MDI поддерживает несколько типов дочерних окон, разработайте строку меню так, чтобы она отражала операции, связанные с активным окном. Чтобы сделать это, предусмотрите отдельные ресурсы меню для каждого типа дочернего окна, которые поддерживает приложение. Когда новый тип дочернего окна становится активным, программа должна отправить сообщение WM_MDISETMENU рабочему окну, передавая в него дескриптор соответствующего меню.
Когда дочерних окон не существует, строка меню должна содержать только пункты, используемые, чтобы создавать или открывать документ.
Когда пользователь осуществляет навигацию по меню приложения MDI, используя клавиши управления курсором, клавиши ведут себя по-другому чем тогда, когда пользователь осуществляет навигацию по меню обычного приложения. В приложении MDI, управление передается от системного меню окна приложения в системное меню активного дочернего окна, а затем первому пункту в строке меню.