Компоновка и разработка элементов окна – искусство и наука одновременно. Цвет, шрифт, размер, тип управляющих элементов, их размер, ориентирование управляющих элементов, вопросы симметричности, выделение, множество других факторов – все оказывает влияние на окончательный вид даже самого простого окна.
К основным операциям с окнами относятся: изменение состояния, открытие и закрытие, перемещение, изменение размера, прокрутка, разбиение.
Если даже система поддерживает многооконность, пользователь, тем не менее, обычно выполняет некоторую последовательность действий в пределах одного окна. Это окно называется активным. Активное окно, как правило, является окном самого верхнего уровня (т.е. расположено «поверх» других открытых окон). Визуально оно отличается своим заголовком, который подсвечивается специальным «активным» цветом. В каждый момент времени может быть активным только одно окно. Хотя другие окна могут относиться к активным (выполняющимся) процессам, но только одно – активное – окно способно воспринимать информацию (команды или данные), вводимую пользователем.
|
|
Поскольку разрабатываемое приложение должно, как правило, выполняться на различных модификациях аппаратных средств, нельзя делать его зависящим от конкретных технических характеристик этих средств (например, от разрешающей способности монитора). При использовании стандартного системного интерфейса система автоматически позиционирует окна приложения в соответствии с характеристиками используемого монитора.
При открытии первичного окна оно автоматически становится активным и располагается на самом верхнем уровне. Если пользователь пытается открыть первичное окно, которое ранее уже было открыто в пределах того же «Рабочего стола», активизируйте существующее окно, используя приведенные ниже рекомендации (таблица 6.3).
Если ваше приложение автоматически не сохраняет результаты редактирования или последние внесенные изменения еще не сохранены в файле, то при закрытии пользователем окна отобразите сообщение, запрашивающее у пользователя необходимость сохранения этих изменений прежде, чем закрыть окно. Пользователь может переместить окно, либо, установив указатель мыши на полосу заголовка окна, либо используя команду «Переместить» из всплывающего меню этого окна.
В процессе работы с одним и тем же приложением пользователю может потребоваться иметь на экране несколько открытых окон, содержащих информацию различных типов либо представляющих собой разное изображение одних и тех же данных. Для создания таких окон и управления ими существует специальная технология – многодокументный интерфейс, сокращенно MDI (Multiple Document Interface).
|
|
Таблица 6.3 – Действия при повторном выполнении операции «Открыть»
Тип файла | Действие при повторном выполнении операции «Открыть» |
Документ или файл данных | Активизируется существующее окно объекта, которое отображается поверх других открытых окон |
Файл приложения | Выводится сообщение о том, что открытое окно этого приложения уже существует, пользователю предлагается либо переключиться на открытое окно, либо открыть новое. В любом случае окно активизируется и отображается поверх других открытых окон |
Файл, который уже открыт в окне MDI-приложения | Активизируется существующее окно файла, при этом содержащее его родительское окно MDI-приложения отображается поверх других окон |
Файл еще не открыт, но связанное с ним MDI- приложение уже загружено | Открывается новый экземпляр связанного MDI-приложения (поверх других окон) и в родительском окне отображается дочернее окно для данного файла. В качестве альтернативного варианта дополнительно может выводиться сообщение о том, что открытое окно этого приложения уже существует и пользователю предлагается выбор – использовать существующее окно или открыть новое родительское окно |
Во многих случаях взаимодействие пользователя с приложением ограничено рамками единственного первичного окна, которые могут быть несколько расширены за счет применения дополнительных вторичных окон. Некоторые типы объектов, например устройства, могут даже не требовать создания собственного первичного окна и использовать только вторичное окно для просмотра и редактирования их свойств. В редких случаях единственным средством визуального представления объекта является его пиктограмма.
Техника MDI заключается в использовании одного первичного окна, называемого родительским окном, которое может содержать набор связанных с ним дочерних окон. Каждое дочернее окно – это, по существу, также первичное окно, единственным ограничением для которого является то, что оно может появиться только в пределах родительского окна. Родительское окно обеспечивает как визуальное, так и «операционное» пространство для своих дочерних окон.
Вторичные окна, такие как диалоговые панели, окна сообщений или панели свойств, появляются на экране как результат тех или иных действий пользователя в родительском или дочернем окне. Эти окна должны активизироваться и отображаться в соответствии с общими соглашениями для вторичных окон, связанных с первичным окном, даже если они относятся к дочернему окну.
Пользователь может активизировать MDI-приложение, либо непосредственно открыв его, либо открыв документ (файл данных) того типа, который поддерживается этим приложением. Если MDI-приложение активизировано посредством открытия документа, сначала открывается родительское окно, а затем внутри его рабочей области – дочернее окно, отображающее выбранный документ или файл. MDI позволяет пользователю перемещать или сворачивать дочернее окно таким же образом, как и родительское окно.
Рекомендуемая форма отображения минимизированного дочернего окна в MS Windows – часть полосы заголовка окна, окруженная рамкой. Это позволяет избежать возможной путаницы между пиктограммами минимизированных дочерних окон и пиктограммами, представляющими объекты.
Когда пользователь переключается на дочернее окно, приложение может изменить интерфейс родительского окна, например, видоизменить меню, панель инструментов или строку состояния, чтобы отразить перечень действий, применимых к этому дочернему окну.
Технология MDI имеет свои ограничения. В частности, MDI-приложение постоянно находится в центре внимания пользователя, нарушая тем самым принцип работы, управляемой данными. Имеется в виду следующее. Хотя пользователь может запустить приложение MDI непосредственно открытием одного из своих документов или файлов данных, тем не менее, чтобы работать с несколькими документами в одном и том же родительском окне, он должен использовать интерфейс приложения для открытия этих документов.
|
|
Когда пользователь открывает несколько файлов в пределах одного родительского окна, нарушается согласованность связи между дочерними окнами и между отображаемыми в них объектами. Несогласованность заключается в том, что, хотя родительское окно визуально объединяет дочерние окна (как бы играет роль контейнера), это не приводит к аналогичному объединению отображаемых файлов.
Вследствие того, что родительское окно в действительности не содержит объекты, представленные в дочерних окнах, технология MDI не может обеспечить эффект непрерывной работы пользователя.
Необходимо также иметь в виду, что технология MDI может усложнить некоторые аспекты использования OLE. Например, если пользователь открывает текстовый документ в MDI-приложении и затем открывает (с помощью другого приложения) электронную таблицу, вставленную в этот текстовый документ, то визуальная связь между текстовым документом и таблицей нарушается, поскольку окно с электронной таблицей не становится дочерним для того же родительского окна MDI.
И еще одно обстоятельство. Ограничения, налагаемые технологией MDI на размещение дочерних окон в родительском окне, могут оказаться критичными для некоторых заданий, например, при проектировании окон или выборе формата инструментальных средств. Кроме того, иногда пользователь может не отличить дочерние окна, «вложенные» в родительское окно, от первичных окон, расположенных поверх него.
Перечисленные недостатки MDI могут быть в значительной степени преодолены за счет применения альтернативных средств, таких как «Рабочие области» (Workspaces), «Рабочие книги» (Workbooks) и «Проекты» (Projects). Хотя эти средства реализуют однооконную модель интерфейса, тем не менее, они обнаруживают целый ряд достоинств, присущих технологии MDI. В частности, с их помощью можно получить различные формы представления одних и тех же данных. Эти средства обеспечивают также большую гибкость относительно включаемых в них типов объектов. Тем не менее, как и любой контейнер, они могут быть настроены на хранение и управление только определенным типом объектов.
|
|