- Введение в создание оконных приложений
- Программный интерфейс приложений
- Графический интерфейс пользователя
- Многозадачность
- Процессы и потоки
- Дескрипторы
- Контекст устройства
- Взаимодействие с пользователем
- Реферат: Механизмы взаимодействия приложения с пользователем
- Файл ресурсов
- Таблицы строк (STRINGTABLE)
- Меню приложения
Введение в создание оконных приложений
Программирование в 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. Он связан с конкретным устройством вывода информации (принтер, дисплей). Что касается дисплея, то в данном случае контекст устройства обычно связан с конкретным окном на экране.
Взаимодействие с пользователем
Разработчику интерфейса пользователя вычислительных систем необходимо решить две главные задачи: каким образом пользователь будет вводить данные в систему и как данные будут представлены пользователю. «Правильный» интерфейс должен обеспечивать и взаимодействие с пользователем, и представление информации.
В этом разделе обсуждаются вопросы взаимодействия системы с пользователем. Интерфейс пользователя обеспечивает ввод команд и данных в вычислительную систему. На первых вычислительных машинах был только один способ ввода данных – через интерфейс командной строки, причем для взаимодействия с машиной использовался специальный командный язык. Такой способ годился только для опытных пользователей, поэтому позже были разработаны более упрощенные способы ввода данных. Все эти виды взаимодействия можно отнести к одному из пяти основных стилей взаимодействия.
1. Непосредственное манипулирование. Пользователь взаимодействует с объектами на экране. Например, для удаления файла пользователь просто перетаскивает его в корзину.
2. Выбор из меню. Пользователь выбирает команду из списка пунктов меню. Очень часто выбранная команда воздействует только на тот объект, который выделен (выбран) на экране. При таком подходе для удаления файла пользователь сначала выбирает файл, а затем команду на удаление.
3. Заполнение форм. Пользователь заполняет поля экранной формы. Некоторые поля могут иметь свое меню (выпадающее меню или списки). В форме могут быть командные кнопки, при щелчке мышью на которых инициируют некоторое действие. Чтобы удалить файл с помощью интерфейса, основанного на форме, надо ввести в поле формы имя файла и затем щелкнуть на кнопке удаления, присутствующей в форме.
4. Командный язык. Пользователь вводит конкретную команду с параметрами, чтобы указать системе, что она должна дальше делать. Чтобы удалить файл, пользователь вводит команду удаления с именем файла в качестве параметра этой команды.
5. Естественный язык. Пользователь вводит команду на естественном языке. Чтобы удалить файл, пользователь может ввести команду «удалить файл с именем XXX».
Каждый из этих стилей взаимодействия имеет преимущества и недостатки и наилучшим образом подходит разным типам приложений и различным категориям пользователей. В табл. 13.3 перечислены основные преимущества и недостатки перечисленных стилей взаимодействия и указаны типы приложений, в которых они обычно используются.
Конечно, стили взаимодействия редко используются в чистом виде, в одном приложении может использоваться одновременно несколько разных стилей. Например, в операционной системе Microsoft Window поддерживается несколько стилей: прямое манипулирование пиктограммами, представляющими файлы и папки, выбор команд из меню, ручной ввод некоторых команд, таких как команды конфигурирования системы, использование форм (диалоговых окон).
Таблица 13.3. Преимущества и недостатки стилей взаимодействия пользователя с системой
Стиль взаимодействия | Основные преимущества | Основные недостатки | Примеры приложений |
Прямое манипулирование | Быстрое и интуитивно понятное взаимодействие. Легок в изучении | Сложная реализация. Подходит только там, где есть зрительный образ задач и объектов | Видеоигры; системы автоматического проектирования |
Выбор из меню | Сокращение количества ошибок пользователя. Ввод с клавиатуры минимальный | Медленный вариант для опытных пользователей. Может быть сложным, если меню состоит из большого количества вложенных пунктов | Главным образом системы общего назначения |
Заполнение форм | Простой ввод данных. Легок в изучении | Занимает пространство на экране | Системы управления запасами; обработка финансовой информации |
Командный язык | Мощный и гибкий | Труден в изучении. Сложно предотвратить ошибки ввода | Операционные системы; библиотечные системы |
Естественный язык | Подходит неопытным пользователям. Легко настраивается | Требует большого ручного набора | Системы расписания; системы хранения данных WWW |
Пользовательские интерфейсы приложений World Wide Web базируются на средствах, предоставляемых языком HTML (язык разметки Web-страниц) вместе с другими языками, например Java, который связывает программы с компонентами Web-страниц. В основном интерфейсы Web-страниц проектируются для случайных пользователей и представляют собой интерфейсы в виде форм. В Web-приложениях можно создавать интерфейсы, в которых применялся бы стиль прямого манипулирования, однако к моменту написания книги проектирование таких интерфейсов представляло достаточно сложную в аспекте программирования задачу.
В принципе необходимо применять различные стили взаимодействия для управления разными системными объектами. Данный принцип составляет основу модели Сихейма (Seeheim) пользовательских интерфейсов. В этой модели разделяются представление информации, управление диалоговыми средствами и управление приложением. На самом деле такая модель является скорее идеальной, чем практической, однако почти всегда есть возможность разделить интерфейсы для разных классов пользователей (например, начинающих и опытных). На рис. 13.2 изображена подобная модель с разделенными интерфейсом командного языка и графическим интерфейсом, лежащая в основе некоторых операционных систем, в частности Linux.
Рис. 13.2. Множественный интерфейс
Разделение представления, взаимодействия и объектов, включенных в интерфейс пользователя, является основным принципом подхода «модель-представление-контроллер», который обсуждается в следующем разделе. Эта модель сравнима с моделью Сихейма, однако используется при реализации отдельных объектов интерфейса, а не всего приложения.
Реферат: Механизмы взаимодействия приложения с пользователем
Название: Механизмы взаимодействия приложения с пользователем Раздел: Рефераты по информатике, программированию Тип: реферат Добавлен 06:53:37 04 октября 2010 Похожие работы Просмотров: 24 Комментариев: 14 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать | ||||||||||||||||||||||||
№ п/п | Действие | Используемое средство |
Создание RC-файла (при необходимости включающего ссылки на файлы с расширением. ico,. cur,. bmp, и т.д.) | Редактор ресурсов (при необходимости может быть использован текстовый и графический редакторы) | |
Редактирование RC-файла в текстовом виде | Текстовый редактор | |
Компиляция RC-файла — получение RES-файла | Компилятор ресурсов | |
Добавление ресурсов, содержащихся в RES-файлс, в bin-файл | Линкер |
Меню приложения
Любой, кто хоть немного работал в Windows, знает, что меню располагаются сразу под заголовком окна и позволяют пользователю осуществить выбор возможностей, предоставляемых программой. Существует два вида меню:
главное меню окна;
всплывающее (контекстное) меню, которое может появляться в любой точке экрана. Обычно их содержание зависит от того, на каком окне щелкнули клавишей мыши.
Основным отображаемым элементом меню является строка или графический объект. Здесь рассматриваются только строки. Они в текстовом виде отображают названия разделов или команд меню, а также клавиш быстрого доступа. Строка может быть отмечена галочкой или иным образом. Такая строка используется как флажок или переключатель, изменяющий режим работы приложения. Если при выборе строки на экране должна появиться диалоговая панель, к слову справа добавляют многоточие. Заблокированные строки меню отображают серым цветом.
Любое перекрывающееся или временное окно может иметь меню. Главное меню находится ниже заголовка окна, и его строки расположены в одну или несколько линий. При выборе строки главного меню, как правило, активизируется раздел меню. Раздел меню представляет собой временное меню.
Строки временного меню расположены в один или несколько столбцов. Если временное меню может появляться в любом месте рабочей области, то оно называется плавающим. В некоторых случаях удобнее применять плавающее меню. Они «всплывают» после щелчка обычно правой клавиши мыши, и место «всплытия» нетрудно связать с координатами курсора мыши. Тогда легче выбрать нужную строку меню. Кроме того, по координатам курсора мыши можно определить объект, по изображению которого был сделан щелчок, и задать зависимый от этого объекта набор строк меню.
По способу создания различают статическое и динамическое меню. Статическое меню создают до запуска и не изменяют в процессе работы приложения. Динамическое меню создают в процессе работы приложения. Динамическое меню после создания можно изменять или оставить неизменным. Работа со строками статических и динамических меню ничем не отличается.
Многоуровневая древовидная структура меню описывается в файле ресурсов. Описание меню имеет вид:
MenuNameMENU [параметры] // это — главное меню
// Описание всех popup-меню и элементов меню второго уровня
MenuName- это имя создаваемого нами меню. Слово MENU- обозначает начало определения меню. Параметры меню
В Win32 API для описания меню существуют два ключевых слова:
POPUP — специфицирует всплывающее меню.
MENUITEM — описывает обычный элемент меню.
Всплывающие меню описывается следующим образом:
POPUP «Имя» [, параметры] // — описание popup-меню
// Описание всех popup-меню и элементов очередного уровня
У конечного элемента меню в его описании есть еще одна характеристика — идентификатор действия:
MENUITEM»Имя», MenuID [, параметры]
В обоих случаях «Имя» — это тот текст, который будет выведен на экран при отображении меню.
Если вместо имени меню окна записано слово SEPARATOR (без кавычек), на месте элемента меню появляется горизонтальная линия, применяемая для разделения элементов подменю не логические группы.
Если в имени меню встречается символ «&», то следующий за амперсандом символ на экране будет подчеркнут одинарной чертой. Этот элемент меню можно будет вызвать с клавиатуры посредством одновременного нажатия клавиши Alt и подчеркнутого символа.
MenuID — идентификатор действия. Он может быть передан функции окна, содержащего меню. Значение идентификатора определяется пользователем. Функция окна в зависимости от полученного MenuID производит определенные действия.
Параметры же описывают способ появления элемента на экране. Возможные значения параметров приведены в табл.2.
Таким образом, элементы в меню могут быть:
Для пользователя обычные и запрещенные элементы выглядят одинаково, а текст в «серых» элементах напечатан серым шрифтом. Но только обычные элементы позволяют пользователю произвести выбор. Запрещенные и «серые» элементы меню могут быть только подсвечены, но с их помощью произвести выбор нельзя.
Параметры, описывающие элемент меню в файле ресурсов
Флаг | Значение |
CHECKED | Рядом с именем элемента может отображаться небольшой значок, говорящий о том, что соответствующий флаг установлен |
ENABLED | Элемент меню доступен |
DISABLED | Элемент меню недоступен, но отображается как обычный |
GRAYED | Элемент меню недоступен и отображается серым цветом |
MENUBREAK | Горизонтальные меню размещают следующие элементы в новой строке, а вертикальные — в новом столбце |
MENUBARBREAK | То же, что и предыдущее, но в случае вертикального меню столбцы разделяются вертикальной линией |
Например. Попробуем создать описание небольшого меню. Горизонтальное меню (menubar) позволит выбирать подменю «File», «Examples» и конечный элемент «Help». Подменю «File» будет содержать элементы «Open » и «Exit», разделенные горизонтальной линией, а подменю «Examples» — несколько конечных элементов.
Ниже приведен текст скрипта для этого меню: