- Введение в создание оконных приложений
- Программный интерфейс приложений
- Графический интерфейс пользователя
- Многозадачность
- Процессы и потоки
- Дескрипторы
- Контекст устройства
- Оконный интерфейс
- Содержание
- Свойства
- Разновидности
- Операционные системы с оконным интерфейсом
- Примеры ОС с оконным интерфейсом
- См. также
- Смотреть что такое «Оконный интерфейс» в других словарях:
Введение в создание оконных приложений
Программирование в Windows основывается на использовании функций API (Application Program Interface, т.е. интерфейс программного приложения).
Программа для Windows в значительной степени состоит из таких вызовов. Все взаимодействие с внешними устройствами и ресурсами операционной системы происходит посредством таких функций.
Программный интерфейс приложений
Windows API (Application Programming Interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows.
Windows API в настоящее время поддерживает свыше тысячи вызовов функций, которые можно использовать в приложениях. Каждая функция Windows API имеет развернутое имя, написанное буквами как верхнего, так и нижнего регистров.
Все основные функции Windows объявляются в заголовочных файлах. Главный заголовочный файл называется WINDOWS.H, и в этом файле содержится множество ссылок на другие заголовочные файлы.
Основное отличие функций API от библиотечных функций С: код библиотечных функций связывается с кодом программы пользователя, а код функций API остается вне программы пользователя в динамически подключаемых библиотеках (DLL – Dynamic Link Library), что позволяет создавать более компактный и эффективный код приложений.
При запуске программы Windows она взаимодействует с операционной системой посредством процесса «динамического связывания». Большая часть динамических библиотек DLL расположена в каталоге WINDOWS\SYSTEM.
При компоновке программы для Windows, чтобы сделать ее исполняемой, необходимо связывать ее с «библиотеками импорта», поставляемыми в составе среды программирования (IDE – Integrated Development Environment), которой может являться, в частности, Microsoft Visual Studio. Библиотеки импорта содержат имена всех функций Windows из динамически подключаемых библиотек и ссылки на них. Компоновщик использует эту информацию для создания в исполняемом EXE-файле таблицы, которую Windows использует при загрузке программы для настройки адресов функций API.
Графический интерфейс пользователя
Графический интерфейс пользователя (Graphical User Interface, GUI) еще называют «визуальный интерфейс» или «графическая оконная среда».
GUI делает возможным использование графики на растровом экране. Графика дает лучшее восприятие элементов управления на экране, визуально богатую среду для передачи информации. В GUI экран становится устройством ввода и показывает различные графические объекты в виде картинок и конструкций для ввода информации, таких как кнопки или полосы прокрутки. Используя клавиатуру и манипулятор (мышь, тачпад), пользователь может непосредственно оперировать объектами на экране. Графические объекты можно перетаскивать, кнопки можно нажимать, полосы прокрутки можно прокручивать. Взаимодействие между пользователем и программой становится более тесным.
Пользователям не надо тратить слишком много времени на то, чтобы научиться пользоваться компьютером и составлять новые программы. Система Windows способствует этому, поскольку все программы для Windows выглядят и воспринимаются одинаково.
Любая программа для Windows имеет окно — прямоугольную область на экране, в котором приложение отображает информацию и получает реакцию от пользователя. Окно идентифицируется заголовком. Большинство функций программы запускается посредством меню. Слишком большой для экрана объем информации может быть просмотрен с помощью полос прокрутки. Некоторые пункты меню вызывают появление окон диалога, в которые пользователь вводит дополнительную информацию.
Программирование Windows-приложений тесно связано с понятиями объектно-ориентированного программирования. Главным объектом в операционной системе Windows является окно. Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами.
Активное окно – окно, получающее реакцию от пользователя в данный момент.
Основными элементами окна являются
- 1 — строка заголовка title bar
- 2 — строка меню menu bar
- 3 — системное меню system menu
- 4 — кнопка сворачивания окна minimize box
- 5 — кнопка разворачивания окна maximize box
- 6 — рамка изменения размеров sizing border
- 7 — клиентская область client area
- 8 — горизонтальная и вертикальная полосы прокрутки scroll bars
Многозадачность
Многозадачность ( multitasking ) — свойство операционной системы обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.
Операционная система Windows является многозадачной. Если программа DOS после своего запуска должна быть постоянно активной, и если ей что-то требуется (к примеру, получить очередную порцию данных с устройства ввода-вывода), то она сама должна выполнять соответствующие запросы к операционной системе, то в Windows все наоборот. Программа пассивна, после запуска она ждет, когда ей уделит внимание операционная система. Операционная система делает это посылкой специально оформленных групп данных, называемых сообщениями . Сообщения могут быть разного типа, они функционируют в системе достаточно хаотично, и приложение не знает, какого типа сообщение придет следующим.
Логика построения Windows-приложения должна обеспечивать корректную и предсказуемую работу при поступлении сообщений любого типа. Одновременно несколько программ могут выполняться и иметь вывод на экран. Каждая программа занимает на экране прямоугольное окно. Пользователь может перемещать окна по всему экрану, менять их размер, переключаться между разными программами и передавать данные от одной программы к другой.
Операционная система не сможет реализовать многозадачность без управления памятью. Так как одни программы запускаются, а другие завершаются, память фрагментируется. Операционная система Windows имеет средства управления фрагментами памяти.
Процессы и потоки
Процессом ( process ) называется экземпляр программы, загруженной в память. Экземпляр программы может создавать потоки ( thread ), которые представляют собой последовательность инструкций на выполнение.
Выполняются не процессы, а именно потоки. Любой процесс имеет хотя бы один поток. Этот поток называется главным (основным) потоком приложения .
Потоки на самом деле выполняются не одновременно, а по очереди. Распределение процессорного времени происходит между потоками, но переключение между ними происходит так часто, что кажется будто они выполняются параллельно.
Все потоки ранжируются по приоритетам. Приоритет потока обозначается числом от 0 до 31, и определяется исходя из приоритета процесса, породившего поток, и относительного приоритета самого потока. Таким образом, достигается наибольшая гибкость, и каждый поток в идеале получает столько времени, сколько ему необходимо.
Дескрипторы
Дескриптор (описатель) объекта — служебная структура данных, представляющая собой беззнаковое целое число и служащая для идентификации различных объектов. Дескриптор представляет собой указатель на некоторую системную структуру или индекс в некоторой системной таблице.
Примеры дескрипторов, описанных в заголовочном файле windows.h
Контекст устройства
GDI – графический интерфейс устройства. Функции системной библиотеки GDI32.dll используются для вывода графики на экран.
Дескриптор контекста устройства — это паспорт конкретного окна для функций GDI. Контекст устройства фактически является структурой данных, которая внутренне поддерживается GDI. Он связан с конкретным устройством вывода информации (принтер, дисплей). Что касается дисплея, то в данном случае контекст устройства обычно связан с конкретным окном на экране.
Оконный интерфейс
Око́нный интерфе́йс — способ организации полноэкранного интерфейса программы, в котором каждая интегральная часть располагается в окне — собственном субэкранном пространстве, находящемся в произвольном месте «над» основным экраном. Несколько окон, одновременно располагающихся на экране, могут перекрываться, виртуально находясь «выше» или «ниже» друг относительно друга.
Оконный интерфейс реализуется как в графическом, так и в текстовом режиме (наиболее известной (неполной) реализацией оконного интерфейса в текстовом режиме является программа-оболочка Питера Нортона «Norton Commander» и её многочисленные модификации [1] ). Однако наибольшую популярность он завоевал благодаря операционным системам с графическими оконными оболочками (ОС Mac, ОС Windows) и в настоящее время является самым популярным видом пользовательского интерфейса.
Содержание
Свойства
Окно обычно имеет прямоугольную форму, обычно с обрамлением рамкой и/или цветом фона, отличным от цвета основного экрана. При необходимости окно имеет заголовок (с пояснением функции) и органы управления. Иногда используются различные эффекты для придания ощущения объемности интерфейса, в том числе:
- «тени» — затемнение под окном со сдвигом (как правило, вправо-вниз, предполагая наличие света слева-сверху). В графическом режиме тени также могут отбрасывать другие элементы интерфейса, например курсор мыши;
- создание иллюзии выпуклых и вдавленых структур — линий, надписей, пониженных или повышенных областей (например, кнопок), рамок и т. п., линиями повышенной и пониженной яркости и полутоновыми переходами (для имитации криволинейных поверхностей);
- полная или частичная (полу-)прозрачность окна — просвечивание сквозь «подложки» или других окон (возможно только в графическом режиме).
Оконный интерфейс имеют оболочки большинства операционных систем, и, в этом случае, окно может представлять собой отдельную запущенную программу (задачу). Процедуры поддержки оконного интерфейса призваны отрисовывать экран с располагающимися «поверх него» окнами и распределять ввод пользователя между ними (при существовании нескольких равноправных окон ввод пользователя осуществляется в то, которое в данный момент является активным).
Разновидности
Программы с классической (полноэкранной) организацией экрана могут использовать элементы оконного интерфейса (субокна) для: организации меню, окон сообщений и диалогов.
Программы с полной реализацией оконного интерфейса раздельно работают с отдельными подзадачами в разных окнах. Такая программа может одновременно открывать/работать с несколькими документами, помещая их в отдельные субокна (например, многооконный редактор с документом в каждом окне). Организацию этих субокон в подобных программах реализуют несколькими способами:
- однооконный режим (SDI)
- многооконный режим (MDI, TDI)
- псевдомногооконный режим (PMDI)
(некоторые программы поддерживают несколько таких режимов, с возможностью переключения между ними, напр. AkelPad).
Также однооконный режим может поддерживать систему фреймов, при которой общее окно разбито на несколько функционально независимых областей, фреймов (форточек).
При полной реализации основной экран «под окнами» разгружается и может быть использован для каких-нибудь глобальных (фоновых) задач. Полная реализация, как правило, предполагает наличие мыши, для простого переключения между окнами и управления ими (перемещение, изменения размеров, скрытие, закрытие и тому подобное).
Также существует разновидность окон (называемых модальными), которые «монополизируют» фокус пользовательского внимания, и продолжить работу с программой можно лишь после закрытия (выполнения запроса) такого «модального» окна.
Операционные системы с оконным интерфейсом
Большинство современных операционных систем имеют неотъемлемый или опциональный оконный графический пользовательский интерфейс, реализующий окно в качестве основы взаимодействия с пользователем.
Оконная операционная система позволяет пользователю одновременно работать с различными программами. Каждая программа работает в отдельном окне, занимающем отдельное пространство на экране, обычно в форме прямоугольника. Большинство операционных систем предоставляют пользователю основные функции работы с окнами: перенос, изменение размера окна, фокуса окна и так далее.
Некоторые оконные системы, например X Window System, обладают также сетевой структурой, позволяющей пользователю работать с графическими программами на удалённых узлах-клиентах.
Примеры ОС с оконным интерфейсом
- 8½ и rio для Plan 9
- GEM
- Fresco/Berlin
- NEXTSTEP
- AmigaOS#Workbench в AmigaOS
- Quartz для Mac OS X
- X Window System
- Y Window System
- Microsoft Windows
- Mac OS
- Palm OS
- Chrome OS
См. также
- ↑ см. Список файловых менеджеров, также много программ с текстовым оконным интерфейсом было сделано с использованием библиотеки Turbo Vision от компании Borland
Управление |
---|