П_К_Лекц_ї. Что такое интерфейс
Скачать 1.02 Mb.
|
Глава 4 —, .. ОКНА И ПИКТОГРАММЫ В соответствии с концепциями, положенными в основу графического интерфейса, объекты приложения могут быть визуально представлены на Рабочем столе либо в виде пиктограмм, либо в виде окон, отображающих содержимое объекта. Во многих случаях для реализации взаимодействия пользователя с объектами приложения или с приложением в целом оказывается достаточным единственного первичного окна (возможно, дополненного набором вторичных окоп). Однооконная модель приложения облегчает пользователям ассоциативную связь между объектами и их визуальным представлением; кроме того, она существенно упрощает пользователю работу с окнами. При этом технология OLE позволяет в пределах единственного первичного окна создавать сложные структуры данных, объединяющие информацию различных типов. Объекты некоторых типов (например, устройства) могут даже не требовать создания первичного окна и использовать только вторичное окно для просмотра и редактирования их свойств. Иногда (весьма редко) объект вообще может быть представлен в приложении лишь своей пиктограммой. Вместе с тем, при выполнении некоторых заданий однооконная модель не обеспечивает достаточно эффективного управления приложением (или отдельными его объектами); обычно такая ситуация имеет место в тех случаях, когда пользователю требуется работать одновременно с несколькими различными формами представления одних и тех же данных или с несколькими видами взаимосвязанных данных в пределах одного окна. В таких случаях следует продумать возможность использования других моделей приложения, например, на основе многодокументного интерфейса (MDI) или Проекта. 4.1. ПРОЕКТИРОВАНИЕ ПИКТОГРАММ Все пиктограммы, используемые в приложении, следует разрабатывать как единый набор; при этом должна обеспечиваться их согласованность и друг с другом, и с заданиями пользователя. Если первоначальный вариант не удовлетворяет потенциального пользователя, нельзя жалеть времени на внесение изменений. Каждая пиктограмма должна быть реализована в трех стандартных форматах: 16x16 пикселов (для 16 цветов), 32x32 пиксела (также для 16 цветов) и 48x48 пикселов (для 256 цветов), как показано на рис. 4.1. Хотя для меньших размеров также может быть использована большая глубина цвета, это требует увеличения памяти для хранения пиктограмм и не может быть реализовано на всех конфигурациях компьютера. Система автоматически формирует цветовую схему пиктограммы для монохромных конфигураций. Тем не менее, целесообразно заранее оценить качество зрительного восприятия разработанных пиктограмм в монохромном режиме. Если результат окажется неудовлетворительным, следует создать собственные монохромные варианты пиктограмм. Пиктограммы необходимо разрабатывать не только для исполняемого файла приложения, но также для всех типов файлов данных, поддерживаемых вашим приложением. При этом пиктограммы для файлов данных (или документов) должны отличаться от пиктограммы приложения. Как правило, они могут содержать некоторый общий элемент, однако основное содержание рисунка пиктограмм файлов данных должно отражать сущность хранимой в них информации. Все созданные пиктограммы должны быть зарегистрированы в системном реестре. Если какая-либо из пиктограмм не будет зарегистрирована, система автоматически использует вместо нее основную пиктограмму приложения. Тем не менее, вряд ли такая замена будет удачнее того, что мог бы предложить сам разработчик. В основу рисунка, отображаемого на пиктограмме, должен быть положен образ объекта реального мира, точнее, те его детали, которые действительно необходимы для однозначного восприятия объекта пользователем. Где это возможно, лучше использовать трехмерное изображение и светотень, чтобы лучше передать образы реального мира. Выводимое на пиктограммах изображение должно вызывать у потенциального пользователя вполне определенную предсказуемую ассоциацию с объектами реального мира. 4.2. ПЕРВИЧНЫЕ ОКНА Поскольку окна предоставляют доступ к различным видам информации (текстовой, графической), они классифицируются согласно их основному предназначению. Взаимодействие с объектами обычно реализуется с помощью так называемого первичного окна, в котором происходит первоначальный просмотр и редактирование данных. Кроме того, могут использоваться дополнительные (вторичные) окна, которые позволяют устанавливать дополнительные параметры обработки, или обеспечивают доступ к более специфическим деталям взаимодействия с объектами, включенными в первичное окно. 4.2.1. СТРУКТУРА ПЕРВИЧНОГО ОКНА Типовое первичное окно состоит из рамки (или границы), которая определяет размеры окна, и заголовка окна, который идентифицирует информацию, представленную в окне. Если объем выводимой информации превышает текущий размер окна, оно дополняется полосами прокрутки. Окно может также содержать другие элементы интерфейса (меню, панель инструментов, строку состояния). Внешний вид рамки окна определяется типом окна. Изменяемое окно имеет четкую границу, которая обеспечивает управление размерами на основе прямого манипулирования. Если окно не может изменять размеры, граница «сливается» с краем окна. В верхней части окна находится заголовок окна. Он выводится в так называемой полосе заголовка, которая занимает всю ширину окна. Полоса заголовка служит также в качестве опорной точки для перемещения окна и для отображения свернутого окна. Кроме того, она используется в качестве средства доступа к командам управления окном. В частности, щелчок правой кнопкой мыши в полосе заголовка приводит к появлению всплывающего меню для данного окна. Первичное окно содержит также уменьшенную копию пиктограммы объекта или приложения, к которому оно относится. Она выводится в верхнем левом углу окна (в полосе заголовка). Если окно относится к какой-либо компоненте приложения, которая не создает свои собственные файлы данных, то рекомендуется в качестве такой пиктограммкн использовать пиктограмму самого приложения. Если приложение обеспечивает работу с различными форматами документов или файлов, и данное окно отображает один из этих файлов, используйте в полосе заголовка пиктограмму, соответствующую его типу. Если приложение использует многодокументный интерфейс (MDI), поместите пиктограмму приложения в полосе заголовка родительского окна, а в полосе заголовка дочернего окна — пиктограмму, которая отражает конкретный тип файла данных приложения. Когда пользователь разворачивает дочернее окно, и полоса заголовка обоих окон объединяется, отобразите пиктограмму заголовка дочернего окна в полосе меню родительского окна. Если открыто несколько дочерних окон, то в указанной позиции следует отобразить только пиктограмму активного (самого верхнего) дочернего окна. Полоса заголовка окна используется также в качестве интерактивного элемента для вызова всплывающего меню окна: когда пользователь щелкает на пиктограмме заголовка окна ПКМ, на экране появляется всплывающее меню для соответствующего объекта. Заголовок окна идентифицирует объект, отображаемый в окне. Он также должен быть согласован с пиктограммой этого объекта, используемой в файловой системе. Например, если пользователь открывает файл данных с названием Мой-_Документ,то в полосе заголовка окна должна быть помещена пиктограмма для этого типа документа, сопровождающаяся именем файла данных. Дополнительно можно также указать имя используемого приложения. Для приложения, использующего MDI, его имя отображается в родительском окне, а в дочернем окне — имя данных. Если пользователь непосредственно открывает приложение, которое отображает новый файл данных, укажите его имя в заголовке окна, даже если пользователь еще не сохранял файл. Используйте для него какое-либо общее имя, отражающее тин данных, например Документ (n),Лист(n),Диаграмма(n), где n — порядковый номер файла этого типа. Убедитесь, что предлагаемое имя не будет конфликтовать с существующими именами в текущем каталоге. Это имя может быть использовано как предлагаемое по умолчанию при сохранении'файла. В некоторых случаях для нового файла удобнее использовать более универсальное название — Безымянный (Unfitted). Следуйте этому же соглашению, если ваше приложение содержит команду Создать, которая создает новые файлы. Избегайте указания имени пользователя для идентификации окна. Вместо этого вы можете открыть диалоговую панель Сохранить как.., которая позволяет пользователю подтверждать или изменять предлагаемое вами имя, когда они сохраняют или закрывают файл, либо пытаются создать новый файл. Отображайте имя файла в заголовке окна точно в таком же виде, в каком оно представлено в файловой системе, в том числе с учетом использования символов верхнего и нижнего регистров. Если имя отображаемого в окне объекта изменилось (например, после того как пользователь отредактирует его), необходимо отразить это изменение в заголовке окна. Всегда пытайтесь поддержать явную ассоциацию между объектом и открытым окном. Когда ширина окна не позволяет отображать полностью название объекта, можно его сократить, однако это следует делать таким образом, чтобы сохранить существенную информацию, которая позволяет пользователю быстро идентифицировать окно. Избегайте включения в полосу заголовка рисунков либо дополнительных элементов управления. Такие дополнительные элементы могут затруднить восприятие имени окна, особенно в тех случаях, когда размер заголовка изменяется вместе с изменением размера окна. Кроме того, система использует эту область для отображения специальных средств управления. Например, в некоторых локализованных версиях Windows в полосе заголовка выводится информация или элементы управления, связанные с использованием определенных языков. Отображая кнопки управления первичного окна, используйте следующие руководящие принципы: Если команда не поддерживается окном, не отображайте соответствующую ей кнопку. Кнопка закрытия окна всегда должна быть самой правой кнопкой. Оставляйте промежуток между ней и всеми другими'кнопками. Кнопка Свернуть должна предшествовать кнопке Развернуть. Кнопка Восстановить всегда заменяет кнопку Развернуть или кнопку Свернуть после выполнения соответствующей команды. Когда пользователь открывает новое первичное окно, для него на Панели задач создается кнопка входа. Эта кнопка предоставляет пользователю доступ к командам соответствующего окна и обеспечивает переключение на это окно после работы с каким-либо другим из открытых окон. Когда окно сворачивается, его кнопка входа по-прежнему остается на Панели задач; она удаляется только в том случае, если пользователь закрывает окно. 4.2.2. ОСНОВНЫЕ ОПЕРАЦИИ С ОКНАМИ К основным операциям с окнами относятся: изменение состояния (активно/ неактивно), открытие и закрытие, перемещение, изменение размера, прокрутка, разбиение. Окно может разделяться на две или более относительно независимые области, которые называются подокнами. Разделение окна позволяет пользователю, например, просматривать одновременно две части одного документа. Технологию разделения окна можно также использовать для того, чтобы отобразить одну и ту же информацию в различной форме. Если же наоборот, необходимо одновременно получить доступ к нескольким файлам в рамках выполнения одного задания, следует использовать другую технику управления окнами, например, MDI. Разбиение окна на подокна может быть установлено либо разработчиком приложения (как основная форма окна), либо пользователем, посредством задания соответствующего параметра. Для того чтобы поддерживать разбиение окна, которое не определено заранее, включите в состав создаваемой программы так называемый блок разделения. Блок разделения является специальным элементом управления, который отображается в конце полосы прокрутки окна и обозначает регулируемую границу между подокнами. Размер блока разделения должен быть достаточно большим, чтобы пользователь мог работать с ним, используя указатель мыши. 4.2.4. МНОГОДОКУМЕНТНЫЙ ИНТЕРФЕЙС (MDI) В процессе работы с одним и тем же приложением пользователю может потребоваться иметь на экране несколько открытых окон, содержащих информацию различных типов, либо представляющих собой разное изображение одних и тех же данных. Для создания таких окон и управления ими существует специальная технология — многодокументный интерфейс, сокращенно MDI (Multiple Document Interface). Техника MDI заключается в использовании одного первичного окна, называемого родительским окном, которое может содержать набор связанных с ним дочерних окон. Каждое дочернее окно — это, по существу, также первичное окно, единственным ограничением для которого является то, что оно может появиться только в пределах родительского окна. Родительское окно обеспечивает как визуальное, так и «операционное» пространство для своих дочерних окон. Например, на дочернее окно обычно распространяется область действия меню родительского окна и, возможно, других элементов его интерфейса (панели инструментов, строки состояния и т.д.). Их вид может изменяться, если необходимо отразить команды и атрибуты активного дочернего окна. Вторичные окна, такие как диалоговые панели, окна сообщений или панели свойств, появляются на экране как результат тех или иных действий пользователя в родительском или дочернем окне. Эти окна должны активизироваться и отображаться в соответствии с общими соглашениями для вторичных окон, связанных с первичным окном, даже если они относятся к дочернему окну. Заголовок родительского окна обычно содержит пиктограмму и имя приложения или объекта, который оно представляет. Заголовок дочернего окна содержит пиктограмму, представляющую тип документа или файла данных, и имя файла. Как для родительского окна, так и для всех его дочерних окон должны поддерживаться всплывающие меню; перечень команд в таком меню аналогичен рассмотренному выше применительно к первичным окнам. Пользователь может активизировать MDI-приложение либо непосредственно открыв его, либо открыв документ (файл данных) того типа, который поддерживается этим приложением. Если MDI-приложение активизировано посредством открытия документа, сначала открывается родительское окно, а затем внутри его рабочей области — дочернее окно, отображающее выбранный документ или файл. Для того, чтобы упростить пользователю открытие других документов, связанных с этим приложением, включите в его интерфейс диалоговую панель ОТКРЫТЬ. 4.2.5. ВЫБОР МОДЕЛИ ОКНА При выборе формы представления задании или процессов, связанных с работой приложения, следует принимать во внимание целый ряд факторов: уровень знаний и навыков предполагаемых пользователей, особенности используемых объектов и решаемых с помощью приложения задач, требования к эффективному использованию пространства экрана монитора, а также ориентацию на разработку, управляемую данными. В частности, форма представления объекта зависит от способа его использования и взаимосвязи с другими объектами. Простые объекты, которые являются «самодостаточными», обычно не требуют создания собственного первичного окна; средства взаимодействия пользователя с ними могут быть ограничены набором команд меню и использованием панели свойств. Примером объекта такого типа может служить кнопка. Объект, обладающий некоторым внутренним содержанием, которое должно быть доступно пользователю, дополнительно к перечню свойств требует наличия собственного первичного окна; примером такого объекта является текстовый документ. Во многих случаях для представления объекта оказывается достаточным наличие единственного окна, даже если его содержимое может изменяться. При этом изменение формы представления объекта в том же окне обеспечивается с помощью элементов пользовательского интерфейса, которые были описаны выше. Система использует единый стиль интерфейса окна для большинства используемых объектов, таких, например, как папки. В тех случаях, когда структура объекта требует представления его одновременно в нескольких видах, или когда пользователю необходимо работать одновременно с несколькими объектами, более эффективным является применение технологии MDI, либо использование Рабочих областей, Рабочих книг и Проектов. Эти конструкции обеспечивают формирование рабочей среды пользователя, ориентированно!1] на выполнение определенного задания. При этом технология MDI является наиболее подходящей для работы с несколькими однотипными объектами, а использование Рабочих книг позволяет оптимизировать навигацию пользователя между различными представлениями одного объекта. Недостатком Рабочей книги можно считать то, что она ограничивает способность пользователя видеть одновременно несколько представлений объекта Рабочие области и Проекты обеспечивают более гибкую технику для просмотра и совмещения объектов и их окоп. Используйте Рабочую область в тех случаях, когда пользователю может потребоваться сгруппировать пиктограммы объектов (или их окна), используемые при выполнении некоторого задания. Применение Проекта позволяет снять ограничения на расположение и формат дочерних окон. Вместе с тем, это преимущество достигается за счет увеличения сложности работы пользователя; кроме того, пользователю бывает весьма сложно отличить дочерние окна Проекта от окон других активных приложений. После того, как выбрана модель (концепция) формируемых приложением окон, следует тщательно, продумать требования к формату отображаемых в них информации, Д[ля современных мониторов с высоким разрешением использование меню, панелей инструментов и строк состояния не представляет большой проблемы с точки зрения адекватного отображения любой требуемой информации. Вместе с тем, компоненты интерфейса не должны доминировать над рабочей областью пользователя, поскольку это может затруднить ему отыскание требуемых данных или манипулирование ими. MDI, Рабочие области, Рабочие книги и Проекты допускают возможность совместного использования некоторых компонентов интерфейса несколькими окнами. В связи с этим пользователю всегда должно быть ясно, когда и в каком окне доступен конкретный элемент интерфейса. Хотя вы можете предусмотреть автоматическую коррекцию содержимого таких компонентов, как меню или строка состояния, тем не менее следует учитывать необходимость поддержания согласованности интерфейса в части использования общих функций. Например, если во всех дочерних окнах предусмотрена команда Печать, то соответствующая ей кнопка должна в них находиться в одной и той же позиции. Несоблюдение этого правила может существенно снизить эффективность работы пользователя. Необходимо также иметь в виду, что наличие общих элементов интерфейса усложняет его настройку при переключении пользователя с одного окна на другое. Независимо от выбранной модели окна следует всегда разрешать пользователям индивидуальную настройку интерфейса, хотя бы на уровне «скрыть/отобразить» тот или иной элемент интерфейса. Однако при этом необходимо предусмотреть возможность альтернативного доступа пользователя к той функции, которая связана со скрытым элементом (например, с помощью всплывающего меню). Использование одного первичного окна, применение MDI, Рабочих областей, Рабочих книг и Проектов не являются взаимоисключающими вариантами реализации пользовательского интерфейса приложения. Как и во многих других областях человеческой деятельности, наиболее эффективными оказываются, как правило, компромиссные решения. 4.3. ВТОРИЧНЫЕ ОКНА Вторичные окна предназначены для приема от пользователя или отображения дополнительной информации, которая, как правило, связана с объектами, представленными в первичном окне. Они позволяют значительно расширить диапазон средств диалогового взаимодействия пользователя с приложением, являясь дополнением к первичным окнам. 4.3.1. ОСНОВНЫЕ СВОЙСТВА ВТОРИЧНЫХ ОКОН Вторичные окна обладают некоторыми свойствами первичных окон, тем не менее, они отличаются от первичных окон во многих аспектах поведения и использования. В частности, для вторичных окон не создаются кнопки входа на Панели задач. Стандартное вторичное окно содержит полосу заголовка окна и поле, ограниченное рамкой (рис. 4.17); пользователь может перемещать его, как и первичное окно, с помощью мыши, установив указатель на полосе заголовка окна. Тем не менее, вторичное окно не имеет кнопок Развернуть и Свернуть, поскольку данные операции обычно не применяются к вторичному окну. Чтобы закрыть окно, может использоваться кнопка Закрыть. Заголовок окна является его меткой и поясняет назначение окна; полоса заголовка вторичного окна не содержит пиктограммы. Разрешается включать во вторичные окна строку состояния, но не рекомендуется дублировать в ней элементы, используемые в строке состояния первичного окна. Как и для первичного окна, для вторичного поддерживается всплывающее меню с командами управления окном; работа с всплывающим меню реализуется таким же образом, как и для первичного окна. Вторичное окно может также содержать в полосе заголовка окна кнопку вызова контекстной помощи (Что это?). Эта кнопка позволяет пользователю получать контекстно-зависимую справочную информацию о компонентах, отображенных в окне. Вторичное окно может быть независимым или модальным. Независимое вторичное окно позволяет пользователю взаимодействовать с другими вторичными или первичными окнами, а также переключаться между первичными окнами. Независимое вторичное окно целесообразно использовать в тех ситуациях, где пользователю может потребоваться повторить действие, связанное с этим окном (например, при поиске слова в тексте или при форматировании текста). Модальное вторичное окно требует от пользователя завершить ввод данных в пределах данного окна и закрыть его, прежде чем продолжить работу за пределами окна. Вторичное окно может быть модальным по отношению к своему первичному окну или по отношению к системе. В последнем случае пользователь должен выполнить требующиеся действия и закрыть окно прежде, чем взаимодействовать с любыми другими окнами или объектами. Поскольку модальные вторичные окна ограничивают диапазон возможных действий пользователя, используйте их только в ситуациях определенного типа. В частности, в таких, когда для выполнения команды требуется ввести дополнительную информацию, или когда необходимо приостановить дальнейшую работу пользователя, пока не будет реализовано некоторое условие. Избегайте использования системных модальных вторичных окон, если ваше приложение не исполняется в качестве системной утилиты; но даже и в этом случае применяйте их только в наиболее серьезных ситуациях, игнорирование которых может привести к фатальной системной ошибке. ВЗАИМОДЕЙСТВИЕ С ДРУГИМИ ОКНАМИ Вторичные окна, которые отображаются при выполнении команд, выбранных в первичном окне, зависят от состояния первичного окна; это означает, что когда первичное окно закрывается или свертывается, вторичные окна также закрываются или свертываются. Когда пользователь вновь открывает или восстанавливает первичное окно, восстановите вторичные окна в их прежнем положении и состоянии. Тем не менее, если открытие вторичного окна является результатом действия вне первичного окна (например, если пользователь выбирает команду Свойства для объекта, расположенного на Рабочем столе), то такое вторичное окно является независимым по отношению ко всем открытым первичным окнам и относится к тому же уровню иерархии, что и они (хотя для него, как было указано выше, и не создается кнопка входа на Панели задач). РАЗМЕЩЕНИЕ ВТОРИЧНЫХ ОКОН При выборе расположения вторичного окна на экране следует учитывать большое число факторов, в том числе назначение окна, причину его появления, размеры экрана монитора и т.д. Как правило, вторичное окно следует отображать в той позиции, где оно появлялось в последний раз. При первом открытии окна установите его в позиции, удобной для работы пользователя, причем окно обязательно должно отображаться полностью. Во многих случаях удобнее всего располагать вторичное окно таким образом, чтобы оно находилось в центре первичного окна по горизонтали и ниже заголовка окна, меню и всех пристыкованных к верхнему краю окна панелей инструментов. ПОДТВЕРЖДЕНИЕ КОРРЕКТНОСТИ ВВОДА Всегда подтверждайте корректность ввода данных пользователем во вторичном окне, причем с минимально возможной задержкой. В идеальном случае корректность ввода должна подтверждаться сразу после окончания ввода. При обнаружении ошибки можно либо запретить ввод, либо использовать звуковую и визуальную обратную связь, чтобы предупредить пользователя об ошибке. Вы можете также вывести на экран окно сообщения, содержащее пояснения по возникшей ситуации, особенно если пользователь многократно пытается повторить неправильный ввод. Вероятность ошибок пользователя может быть снижена за счет использования элементов интерфейса, которые ограничивают возможный выбор пользователя в конкретной ситуации (к таким элементам относятся, например, переключатели и списки), либо путем инициализации области ввода значением, установленным по умолчанию. Если невозможно подтвердить правильность ввода непосредственно после его завершения, следует предусмотреть способ подтверждения действий пользователя по окончании его работы с данным вторичным окном. Если и это затруднительно, то подтверждайте корректность ввода всякий раз, когда пользователь пытается закрыть окно. В случае ошибки оставьте окно открытым и выведите соответствующее сообщение; после того, как пользователь его закроет, установите фокус ввода на том элементе, который содержит неподходящие данные. |