Лабораторная работа: Организация интерфейса пользователя

- индикатор хода выполнения задачи (progressbar), рис. 6, д;

- ползунок (slider), рис. 6, е;

- списки: линейный (listbox, рис. 6, ж), выпадающий (combobox, рис. 6, з), древовидный (treecontrol, рис. 6, и);

- переключатель (radiobutton), рис. 6, к;

- меню (menu), рис. 6, л;

- панель инструментов (toolbar), рис. 6, м.

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


а)

б)

в)

г)

д)

е)

ж)

з)

и)

к)

л)

м)

Рис.6 . Компоненты интерфейса со свободной навигацией

Как правило, интерфейсы этого типа реализуют, используя событийное программирование и объектно-ориентированные библиотеки, что предполагает применение визуальных сред разработки программного обеспечения. Тем не менее, несложные интерфейсы со свободной навигацией можно реализовать и на процедурно-ориентированном языке (например, Си) в однозадачной операционной системе без событийного управления (например, MS-DOS). Пример такого интерфейса для программы решения квадратного уравнения приведен на рис. 7.

Рис.7 . Внешний вид интерфейса со свободной навигацией

Интерфейс данной программы состоит из трех полей ввода для коэффициентов a , b , c и кнопки «Выход». Пользователь может вводить значения в поля в произвольном порядке. После ввода значения программа автоматически пересчитывает корни квадратного уравнения и обновляет информацию на экране. Текущий элемент управления (поле ввода или кнопка) подсвечивается, как это принято во всех системах, допускающих навигацию с использованием клавиатуры.


3. Текстовый режим работы видеоадаптера

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

Рассмотрим подробнее работу видеоадаптера в текстовом режиме. Экран в текстовом режиме разбивается на столбцы и строки символов. Количество столбцов и строк зависит от установленного видеорежима. Размеры экрана для стандартных видеорежимов приведены в табл. 1. По умолчанию программы под MS-DOS работают в цветном видеорежиме 80×25 (C80), однако при запуске их под WindowsNT/2000/XP система предлагает по умолчанию видеорежим 80×50 (C4350). Для обеспечения корректной работы программ нужно либо устанавливать режим самостоятельно (функцией textmode), либо определять размеры экрана (функцией gettextinfo) и осуществлять вывод с учетом полученных значений.

Помимо перечисленных, в современных видеоадаптерах существуют режимы с шириной экрана, равной 132 символа. В этих режимах на экран помещается значительно больше информации. В то же время качество вывода текста практически не ухудшается, так как современные мониторы поддерживают значительно большие разрешения и имеют большие размеры экрана, чем на заре развития ЭВМ. Однако эти режимы не поддерживаются BorlandC++, потому что они появились несколько позже соответствующих библиотек языка Си.

Таблица 1

Характеристики текстовых видеорежимов

Размеры экрана Количество цветов Константа Си
40×25 16 оттенков серого BW40
40×25 16 цветов C40
80×25 16 оттенков серого BW80
80×25 16 цветов C80
80×25 2 (монохромный) MONO

80×43 (EGA)

80×50 (VGA)

16 цветов C4350

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

На каждое знакоместо в видеопамяти отводится два байта. В один из них записывается ASCII-код символа, который должен выводиться в соответствующем месте экрана. Другой байт называется байтом атрибутов текста и содержит информацию о цвете символа. Младшие 4 бита атрибутов определяют цвет текста, старшие – цвет фона. Коды цветов приведены в табл. 2. Знакоместа записываются в видеопамяти последовательно слева направо, сверху вниз.

Таблица 2

Коды цветов текстового режима

Код Цвет Константа Си Код Цвет Константа Си
0 Черный BLACK 8 Черный DARKGRAY
1 Темно-синий BLUE 9 Светло-синий LIGHTBLUE
2 Темно-зеленый GREEN 10 Светло-зеленый LIGHTGREEN
3 Темно-голубой CYAN 11 Светло-голубой LIGHTCYAN
4 Темно-красный RED 12 Светло-красный LIGHTRED
5 Темно-розовый MAGENTA 13 Светло-розовый LIGHTMAGENTA
6 Коричневый BROWN 14 Желтый YELLOW
7 Светло-серый LIGHTGRAY 15 Белый WHITE

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

За формирование изображения на экране из ASCII-кодов и атрибутов текста отвечает видеоадаптер. Программисту не приходится затрачивать для этого практически никаких усилий. Преобразование ASCII-кода в растровый образ символа, выводимый на экран, осуществляется «на лету» в процессе развертки кадра. При этом используется шрифт, который либо «прошит» в ПЗУ видеоадаптера, либо заранее загружен из ОЗУ пользователем. Шрифты, используемые по умолчанию в системе MS-DOS, содержат во второй половине таблицы европейские символы. В связи с этим для вывода кириллицы в текстовом режиме требуется настройка системы на 866 кодовую страницу либо установка русификатора перед запуском программы. И в том, и в другом случае с диска подгружается русифицированный шрифт и устанавливается в качестве текущего шрифта для видеоадаптера.

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

Система координат на экране выглядит так же, как и в графическом режиме: ось X направлена вправо, ось Y – вниз. Левый верхний угол имеет координаты (1; 1), в отличие от графического режима (где он имеет нулевые координаты). Во многих случаях текстовые функции Си работают не непосредственно с экраном, а с некоторой его прямоугольной областью, называемой окном вывода. По умолчанию окно занимает весь экран, но его координаты могут быть изменены программистом. При выводе в окно содержимое экрана за пределами окна не изменяется, а перенос слишком длинных строк производится по границе окна, а не экрана.

4. Функции текстового режима

Для использования описанных ниже функций необходимо подключить заголовочный файл <conio.h>.

4.1 Общие параметры

К-во Просмотров: 391
Бесплатно скачать Лабораторная работа: Организация интерфейса пользователя