Компоновка и разработка окна

Компоновка и разработка элементов окна – искусство и наука одновременно. Цвет, шрифт, размер, тип управ­ляющих элементов, их размер, ориентирование управляю­щих элементов, вопросы симметричности, выделение, мно­жество других факторов – все оказывает влияние на окон­чательный вид даже самого простого окна.

К основным операциям с окнами относятся: изменение состояния, открытие и закрытие, перемещение, изменение размера, прокрутка, разбиение.

Если даже система поддерживает многооконность, пользователь, тем не менее, обычно выполняет некоторую последовательность действий в пределах одного окна. Это окно называется активным. Активное окно, как правило, является окном самого верхнего уровня (т.е. расположено «поверх» других открытых окон). Визуально оно отлича­ется своим заголовком, который подсвечивается специ­альным «активным» цветом. В каждый момент времени может быть активным только одно окно. Хотя другие окна могут относиться к активным (выполняющимся) процес­сам, но только одно – активное – окно способно воспри­нимать информацию (команды или данные), вводимую пользователем.

Поскольку разрабатываемое приложение должно, как правило, выполняться на различных модификациях ап­паратных средств, нельзя делать его зависящим от кон­кретных технических характеристик этих средств (напри­мер, от разрешающей способности монитора). При исполь­зовании стандартного системного интерфейса система ав­томатически позиционирует окна приложения в соответ­ствии с характеристиками используемого монитора.

При открытии первичного окна оно автоматически ста­новится активным и располагается на самом верхнем уров­не. Если пользователь пытается открыть первичное окно, которое ранее уже было открыто в пределах того же «Рабочего стола», активизируйте существующее окно, используя приведенные ниже рекомендации (таблица 6.3).

Если ваше приложение автоматически не сохраняет ре­зультаты редактирования или последние внесенные изме­нения еще не сохранены в файле, то при закрытии пользо­вателем окна отобразите сообщение, запрашивающее у пользователя необходимость сохранения этих изменений прежде, чем закрыть окно. Пользователь может переместить окно, либо, установив указатель мыши на полосу заголовка окна, либо исполь­зуя команду «Переместить» из всплывающего меню этого окна.

В процессе работы с одним и тем же приложением поль­зователю может потребоваться иметь на экране несколько открытых окон, содержащих информацию различных ти­пов либо представляющих собой разное изображение од­них и тех же данных. Для создания таких окон и управ­ления ими существует специальная технология – много­документный интерфейс, сокращенно MDI (Multiple Doc­ument Interface).

 

Таблица 6.3 – Действия при повторном выполнении операции «Открыть»

Тип файла Действие при повторном выполнении операции «Открыть»
Документ или файл данных Активизируется существующее окно объекта, которое отображается поверх других открытых окон
Файл приложения Выводится сообщение о том, что открытое окно этого приложения уже существует, пользователю предлагает­ся либо переключиться на открытое окно, либо открыть новое. В любом случае окно активизируется и отобра­жается поверх других открытых окон
Файл, который уже открыт в окне MDI-приложения Активизируется существующее окно файла, при этом содержащее его родительское окно MDI-приложения отображается поверх других окон
Файл еще не открыт, но связан­ное с ним MDI- приложение уже загружено Открывается новый экземпляр связан­ного MDI-приложения (поверх других окон) и в родительском окне отобража­ется дочернее окно для данного файла. В качестве альтернативного варианта дополнительно может выводиться сообщение о том, что открытое окно этого приложения уже существует и пользователю предлагается выбор – использовать существующее окно или открыть новое родительское окно

Во многих случаях взаимодействие пользователя с при­ложением ограничено рамками единственного первично­го окна, которые могут быть несколько расширены за счет применения дополнительных вторичных окон. Некоторые типы объектов, например устройства, мо­гут даже не требовать создания собственного первичного окна и использовать только вторичное окно для просмот­ра и редактирования их свойств. В редких случаях единственным средством визуального представления объ­екта является его пиктограмма.

Техника MDI заключается в использовании одного пер­вичного окна, называемого родительским окном, которое может содержать набор связанных с ним дочерних окон. Каждое дочернее окно – это, по существу, также первич­ное окно, единственным ограничением для которого является то, что оно может появиться только в пределах ро­дительского окна. Родительское окно обеспечивает как визуальное, так и «операционное» пространство для своих дочерних окон.

Вторичные окна, такие как диалоговые панели, окна сообщений или панели свойств, появляются на экране как результат тех или иных действий пользователя в роди­тельском или дочернем окне. Эти окна должны активизи­роваться и отображаться в соответствии с общими согла­шениями для вторичных окон, связанных с первичным окном, даже если они относятся к дочернему окну.

Пользователь может активизировать MDI-приложение, либо непосредственно открыв его, либо открыв документ (файл данных) того типа, который поддерживается этим приложением. Если MDI-приложение активизировано по­средством открытия документа, сначала открывается ро­дительское окно, а затем внутри его рабочей области – до­чернее окно, отображающее выбранный документ или файл. MDI позволяет пользователю перемещать или свора­чивать дочернее окно таким же образом, как и родитель­ское окно.

Рекомендуемая форма отображения минимизирован­ного дочернего окна в MS Windows – часть полосы заго­ловка окна, окруженная рамкой. Это позволяет избежать возможной путаницы между пиктограммами минимизи­рованных дочерних окон и пиктограммами, представляю­щими объекты.

Когда пользователь переключается на дочернее окно, приложение может изменить интерфейс родительского окна, например, видоизменить меню, панель инструментов или строку состояния, чтобы отразить перечень действий, при­менимых к этому дочернему окну.

Технология MDI имеет свои ограничения. В частности, MDI-приложение постоянно находится в центре внимания пользователя, нарушая тем самым принцип работы, управ­ляемой данными. Имеется в виду следующее. Хотя поль­зователь может запустить приложение MDI непосредст­венно открытием одного из своих документов или файлов данных, тем не менее, чтобы работать с несколькими до­кументами в одном и том же родительском окне, он должен использовать интерфейс приложения для открытия этих документов.

Когда пользователь открывает несколько файлов в пре­делах одного родительского окна, нарушается согласован­ность связи между дочерними окнами и между отображае­мыми в них объектами. Несогласованность заключается в том, что, хотя родительское окно визуально объединяет дочерние окна (как бы играет роль контейнера), это не при­водит к аналогичному объединению отображаемых фай­лов.

Вследствие того, что родительское окно в действитель­ности не содержит объекты, представленные в дочерних окнах, технология MDI не может обеспечить эффект непрерывной работы пользователя.

Необходимо также иметь в виду, что технология MDI может усложнить некоторые аспекты использования OLE. Например, если пользователь открывает текстовый доку­мент в MDI-приложении и затем открывает (с помощью другого приложения) электронную таблицу, вставленную в этот текстовый документ, то визуальная связь между текстовым документом и таблицей нарушается, посколь­ку окно с электронной таблицей не становится дочерним для того же родительского окна MDI.

И еще одно обстоятельство. Ограничения, на­лагаемые технологией MDI на размещение дочерних окон в родительском окне, могут оказаться критичными для не­которых заданий, например, при проектировании окон или выборе формата инструментальных средств. Кроме того, иногда пользователь может не отличить дочерние окна, «вло­женные» в родительское окно, от первичных окон, распо­ложенных поверх него.

Перечисленные недостатки MDI могут быть в значи­тельной степени преодолены за счет применения альтер­нативных средств, таких как «Рабочие области» (Workspac­es), «Рабочие книги» (Workbooks) и «Проекты» (Projects). Хотя эти средства реализуют однооконную модель интерфейса, тем не менее, они обнаруживают целый ряд достоинств, присущих технологии MDI. В частности, с их помощью можно получить различные формы представления одних и тех же данных. Эти средства обеспечивают также боль­шую гибкость относительно включаемых в них типов объ­ектов. Тем не менее, как и любой контейнер, они могут быть настроены на хранение и управление только опреде­ленным типом объектов.