Работа с окнами

Определение окна



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

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



Что можно делать в окнах?



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

1. Редактируется текст. 

2. Редактируются изображения, рисунки, фотографии и чертежи. 

3. Задаются параметры работы программ. 

4. Выдаются диагностические сообщения и информация о работе операционной системы. 

5. Пишутся тексты программ. 

6. Выполняется эмуляция интерфейса командной строки. 

7. Запускаются игровые программы. 

8. Работают научные, издательские и инженерные прикладные пакеты. 

9. Выполняются системные процедуры. 

10. Осуществляется общение через Интернет. 

11. Просматривается цифровая видеопродукция. 

12. и осуществляются все остальные действия, которые вообще может осуществить компьютер. 

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



Специальные термины, употребляемые в описании работы многооконного интерфейса



Что такое фокус ввода?

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

Понятие фокуса ввода впервые появилось в многозадачных объектно-ориентированных операционных системах, работающих на одном процессоре. Поясним этот абзац примерами. 

В операционной системе MS-DOS все ресурсы компьютера отдавались только одной программе - той, которая была запущена на исполнение. Каждый компьютер имел один процессор, на котором выполнялась одна программа. По определению "фокус ввода" всегда принадлежал выполняемой программе. 

В дальнейшем появились операционные оболочки (типа Quarterdesk DeskView, Microsoft DosShell, Microsoft Windows), которые позволяли выполнять несколько программ на одном компьютере с одним процессором. Для этого использовалось квантование времени процессора, то есть каждая программа работала на процессоре строго определенное время, которое выделялось операционной оболочкой. Для того чтобы осуществить квантование времени и выделить необходимые ресурсы компьютера каждой из программ, стал использоваться объектно-ориентированный подход. При этом подходе все программы, ресурсы компьютера, подключенные к компьютеру устройства, элементы графического интерфейса рассматриваются как ОБЪЕКТЫ с определенным набором данных и манипулирующими ими процедурами. Объекты взаимодействуют между собой через сообщения (messagg e) , которые пересылаются от объекта к объекту. Любой объект, принявший сообщение, запускает указанную в сообщении процедуру, после чего формирует новое сообщение и передает его другим объектам. В этом суть объектно-ориентированного подхода. 

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

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

Понятие родительского окна

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

Модальность окна

В многооконном многозадачном графическом интерфейсе существует возможность менять фокус ввода, переключаться в другие окна, одновременно работать с несколькими объектами. Однако бывают ситуация, когда по логике процесса работать с другим объектом нельзя до тех пор, пока не будет завершена обработка сообщения, не будет введен пользователем ответ на запрос программы, не будет устранена неполадка и тек далее. Поэтому, когда переход к другому окну не возможен без закрытия активного окна, такое окно называется МОДАЛЬНЫМ. Все остальные окна в графическом интерфейсе называются немодальными. 



Классификация окон



Какие виды окон используются в графическом интерфейсе?

В графическом интерфейсе пользователя используются следующие окна: 

а) Перекрывающиеся 

б) Вспомогательные 

в) Дочерние. 

Особым видом окон автор выделяет окна сообщений операционной системы (Messagge Window). 

Для чего используются перекрывающиеся окна?

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

Как правило, перекрывающиеся окна являются главным окном приложения. В нем могут быть расположены дочерние окна (если программа поддерживает многооконный интерфейс). Из главного окна приложения запускаются вспомогательные окна. В рабочей области перекрывающегося окна однооконного приложения может редактироваться текст (редактор WordPad), изображения (Microsoft Paint) и осуществляться другие действия. 


Что такое вспомогательное окно?





Рис. B.7. Вспомогательное окно 



Вспомогательные окна (popup) - это окна, в которые выводится информация о работе приложения, устанавливаются его параметры с помощью органов управления. Примером вспомогательного окна является диалоговое окно (dialog box). Как правило, диалоговое окно всегда модально , то есть оно всегда активно и управление (или фокус) никогда не передается основной программе, пока это окно не закроется. Вспомогательное окно всегда располагается поверх всех окон на экране. Оно может иметь, а может и не иметь родительского окна. В последнем случае считается, что родитель этого окна - рабочая область экрана. 

Как правило, у вспомогательного окна нет системного меню, увеличителя и уменьшителя , строк состояния и линий прокрутки. Зато у него есть дополнительные элементы графического интерфейса - органы управления, которыми можно менять настройки родительского приложения. Оно почти всегда имеет три кнопки: OK (Готово) , Cancel (Отмена) и Help (Помощь). Нажатие OK сохраняет все введенные изменения параметров работы приложения и закрывает окно. Кнопка Cancel закрывает приложение без изменения параметров настроек. Клавиша Help открывает окно справки с описанием работы данного окна и назначения элементов управления данного окна. 

Что такое дочерние окна?

Дочерние окна (child) - окна с информацией рабочей программы, например, поле редактирования, лист электронной таблицы, документ Word и другие документы многооконных приложений. Дочерние окна обязательно имеют родительское окно. Они никогда не отображаются вне своего родительского окна. Родительским окном дочернего окна является перекрывающееся окно приложения. 





Рис. B.8. Перекрывающиеся и дочерние окна. 



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

Окна сообщений

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

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

Эти окна могут содержать только одну кнопку: OK. Тогда эти окна просто информирует пользователя о состоянии приложения. Нажатие на эту кнопку просто закрывает окно. 

Если система выдает запрос или подтверждение на указанные пользователем действия, то она обычно содержит две кнопки: OK и Cancel (Отмена), или Yes (Да) и No (Нет). Нажатие на кнопку OK (или Yes) эквивалентно положительному ответу на запрос, а нажатие клавиши Cancel (No) - отрицательному ответу. 

Иногда запрос машины нельзя уместить в альтернативный (то есть состоящий из двух альтернатив) вопрос. Например, при выходе из программы, содержащей несохраненные данные, программа может выйти в операционную систему и сохранить данные, выйти в операционную систему без сохранения данных, а также отказаться от выхода. В этом случае используется трехальтернативный запрос с кнопками Yes (Да), No (Нет) и Cancel (Отмена). Нажатие на кнопку Yes приводит к положительному ответу на запрос, на кнопку No - к отрицательному ответу на запрос. Нажатие на кнопку Cancel приводит к "снятию" запроса и возвращение системы в состояние, которое было до формирования запроса. Подробнее о кнопках смотри в разделах, посвященных работе графического интерфейса. 

"Псевдоокно"

Имеются также так называемые "псевдоокна" - окна, состоящие из одной рамки. Такие объекты используются, например, для визуализации процесса перемещения окна или изменения его размеров на экране. Псевдоокна изображаются в двух цветах: "прозрачном" и "инверсном". Псевдоокна превращаются в окна после отпускания левой клавиши мыши. 



Как и зачем нужно открывать окно?



Действие: открытие окна приложения. 

Назначение: Открытие окна требуется в следующих случаях: 

1. Вам необходимо запустить приложение, которое работает в оконном режиме. Как правило, в оконном режиме работают все программы, выполнение которых основано на диалоге с пользователем. 

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

Реализация в любой операционной системе с помощью мыши: 

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

С помощью клавиатуры (чистый WIMP - интерфейс): 

Подвести клавишами - стрелками передвижения курсора к нужной иконке приложения или имени запускаемого файла в файловой оболочке операционной системы и нажать клавишу Enter. 

С помощью командной строки (как в интерфейсе командной строки). Ввести имя файла с расширением в командной строке и нажать клавишу Enter. Если файл расположен в текущей директории или его директория находится в путях переменной PATH, то можно указать краткое имя файла. В противном случае необходимо указывать полное имя (с путями). Если команда уже была введена, то ее можно выбрать из комбинированного списка (смотри ниже) с историей уже выполненных команд. 


Для чего нужно закрывать и как закрыть окно в различных операционных системах?



Действие: закрытие окна приложения или дочернего окна. 

Назначение. Закрытие окна может потребоваться в следующих случаях: 

1. Когда Вы хотите закрыть приложение, работающее в открытом окне в диалоговом режиме. 

2. Когда Вы больше не хотите работать с дочерним окном открытого многооконного приложения. 

3. Когда Вы хотите прервать работу приложения, ожидающего от Вас ввода команды. 

4. Когда Вы хотите отказаться от задания опций в диалоговом окне. Это эквивалентно нажатию в диалоговом окне кнопки Cancel. 

5. Вообще, когда Вы не хотите больше работать с какой-либо программой. 

Реализация в любой операционной системе с WIMP - интерфейсом: 

- дважды щелкнуть мышью на кнопке контрольного меню окна, 

Дополнительно для Microsoft Windows 95/98/2000/NT4: 

выбрать кнопку закрытия приложения. 

С помощью клавиатуры для всех операционных систем с WIMP - интерфейсом. 

Нажать комбинацию клавиш Alt+F4 для перекрывающегося окна и Ctrl+F4 - для дочернего окна. 

С помощью контрольного меню для всех операционных систем: выбор пункта Закрыть (Close) в контрольном меню окна. 

B.3.3. Для чего и как вызвать контрольное меню окна в различных операционных системах?

Действие: доступ к контрольному меню окна. 

Назначение: Доступ к контрольному меню позволяет осуществлять все основные действия над окном: открытие, закрытие, "сворачивание" и "распахивание" окна, восстановление его первоначального размера, перемещение, изменение размеров окна, а также переключение между окнами и некоторые другие специфические для данного приложения действия. 

Реализация с помощью мыши: 

а) для всех операционных систем: Выбрать мышью кнопку контрольного меню, или 

б) для OS/2 дополнительно: щелкнуть правой клавишей мыши в рабочей области окна. 

Реализация с помощью клавиатуры в операционных системах Microsoft: 

Нажать сначала клавишу Alt, потом отпустить ее и нажать ПРОБЕЛ, если нужно открыть контекстное меню главного окна, или серый '-', если нужно открыть контекстное меню дочернего окна. 



Контекстное меню иконки



Назначение: Доступ к контрольному меню иконки позволяет сделать приложение, на которое ссылается иконка, активным, настроить параметры работы свернутого в иконку приложения, "распахнуть" иконку на весь экран, и осуществлять некоторые другие действия. 

Реализация с помощью мыши 

в Microsoft Windows 3.xx: 

- выберите иконку левой клавишей мыши. 

в других операционных системах: 

выберите иконку правой клавишей мыши. 

С помощью клавиатуры 

в Microsoft Windows 3.xx, IBM OS/2 Warp: 

- нажмите сочетание клавиш Alt+Enter. 

в других операционных системах: 

нажмите клавишу Context. 



Вызов контекстного меню нескольких объектов



Назначение: 

Такая операция выполняется, когда необходимо осуществить одну однотипную операцию сразу с несколькими объектами. 

Реализация во всех операционных системах: 

a) Выделите группу объектов. Как это сделать - смотри раздел, посвященный выделению объектов в прокручиваемом списке (listbox). 

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

c) Откройте контекстное меню таким же образом, как Вы это делаете для одного объекта. 

Примечание: контекстное меню нескольких объектов будет содержать только те пункты, которые содержатся в контекстном меню каждого из объектов (иначе говоря, повторяющиеся пункты). 



Сворачивание окна в иконку



Действие: Сворачивание окна в иконку. 

Назначение: Свертывание окна в иконку может потребоваться для того, чтобы: 

1. Приложение выполнялось в фоновом режиме. 

2. Чтобы не загромождать рабочую область экрана открытыми окнами приложений.


Реализация для всех операционных систем: 

с помощью мыши: 

- выбрать уменьшитель 

с помощью контрольного меню: 

- выбрать пункт Minimize (свернуть). 

С помощью панели задач в Windows 95/98/2000/NT4: 

- выбрать иконку активного окна на панель задач. 



Распахивание окна во весь экран



Действие: увеличение размеров окна до всего экрана. 

Назначение: Окно необходимо распахнуть, если предполагается, что с приложением, выполняемом в этом окне, будут работать в "привилегированном" режиме (ему и только ему будет предоставлен фокус ввода). Логично, что такое приложение при своем выполнении должно занимать весь экран. 

Реализация для всех операционных систем: 

с помощью мыши: 

- выбрать увеличитель 

с помощью контрольного меню: 

- выбрать пункт Maximize (Распахнуть) 



Возвращение окну первоначального размера



Действие: восстановление прежнего размера окна, если оно свернуто в икону или распахнуто во весь экран. 

Назначение: Возвращать исходный размер окна нужно в том случае, если Вы не хотите, чтобы приложение работало в "привилегированном" или фоновом режимах. Обычно это нужно, если Вам надо одновременно обозревать содержимое нескольких окон, или Вам нужно осуществлять "перетаскивание" объекта из одного окна в другое. Возможны и другие причины. Автор настоятельно рекомендует держать все окна, с которыми Вы работаете одновременно, открытыми до нормального размера. Для удобства работы с этими окнами используйте действия по изменению их размера и положения. 

Реализация для всех операционных систем: 

с помощью мыши: 

- открыть икону, или 

- указать увеличитель для окна, распахнутого во весь экран. 

С помощью контрольного меню: 

- выбрать пункт Restore. 

с помощью панели задач в Windows 95/98/2000/NT4: 

- выбрать иконку приложения, запущенного в фоновом режиме. 



Перемещение окна и иконки



Действие: перемещение окна. 

Назначение: Перемещение окна может потребоваться для просмотра содержимого неактивного окна, когда оно перекрывается (его закрывает) активное окно. Можно переместить любое активное окно, содержащее прямоугольник заголовка. 

Реализация: 

с помощью мыши для всех операционных систем: 

- указать мышью на прямоугольник заголовка, и нажав левую клавишу мыши, переместить окно. 

Такая же последовательность действий и при перемещении иконки. 

Примечание: в процессе переноса появится рамка псевдоокна (или появится псевдоиконка), указывающая, как будет выглядеть объект после перемещения и куда он перемещается. Для фиксации нового положения нужно отпустить клавишу мыши, после чего рабочая область (или икона) перерисуется согласно указанному новому положению окна. Если до отпускания клавиши мыши нажать клавишу Esc на клавиатуре, окно вернется в прежнее положение. 

С помощью контекстного меню в любой операционной системе: 

- открыть контрольное меню окна или иконы и выбрать команду Move (Переместить). На экране появится соответствующий указатель (курсор в виде скрещенных стрелок.) Используя клавиши-стрелки, переместить окно в нужное место (перемещается рамка псевдоокна). После достижения места назначения надо нажать Enter для подтверждения перемещения и Esc для его отмены. Экран при этом перерисуется. 



Изменение размеров окна



Действие: изменение размеров окна. 

Назначение: Изменение размеров окна предназначено для увеличения или уменьшения рабочей области окна. Изменять размеры можно только у активного окна. 

Примечание: в интерфейсе программ DOS, как правило, можно изменять размеры окна на экране, только указав мышью и переместив правый нижний угол окна. 

Реализация: 

С помощью мыши для всех операционных систем. 

- Указать мышью на окантовку или нижнюю часть экрана. 

Курсор при этом изменит форму. Далее надо переместить эту окантовку (будет высвечиваться псевдоокно с новыми размерами). Если отпустить левую кнопку мыши, размер окна зафиксируется. 

С помощью контрольного меню для всех операционных систем: 

- Выбрать в контрольном меню пункт Size (Размер). На экране появится указатель и псевдоокно. С помощью клавишей-стрелок на клавиатуре изменить размеры окна. Нажать Enter для подтверждения или Esc для отмены изменения размеров.