Смекни!
smekni.com

Особенности программирования для Windows (стр. 2 из 6)

Командные кнопки.

Командная кнопка (рис.1.4) - это такой элемент окна, “нажатие” на который вызывает вполне определенное действие. “Нажатие” на кнопку осуществляется либо перемещением на нее указателя мышки и щелчком левой кнопки, либо нажатием “горячей” клавиши (т.е. одновременным нажатием клавиши Alt и клавиши, соответствующей подчеркнутой букве в названии кнопки), либо нажатием клавиши пробела, если кнопка в данный момент имеет фокус (наименование такой кнопки обведено штриховой линией - на рис.1.4 это кнопка “Да”).

Рис.1.4 Диалоговое окно с четырьмя командными кнопками

Переключатели.

Переключатель (рис.1.5) - элемент окна, позволяющий включать или отключать некоторые дополнительные возможности приложения. Переключатель имеет два состояния: включен и выключен[1]. Управление переключателем со стороны пользователя осуществляется также, как и управление командной кнопкой. Важно подчеркнуть, что независимо от того, сколько переключателей расположено в окне, сгруппированы они или нет, каждый переключатель работает независимо от других.


Рис.1.5 Фрагмент окна с переключателями

Радиокнопки.

Радиокнопка (рис.1.6) как элемент управления окна в некотором роде близка переключателю. Этот элемент также имеет всего два состояния: включен/выключен. Принципиальное отличие от переключателей состоит в том, что радиокнопки, как правило, используются только группами. При этом включение одной радиокнопки в группе приводит к автоматическому выключению всех других кнопок этой группы. Иначе говоря, все радиокнопки в группе взаимозависимы. Так например, включение кнопки “Все” на рис.1.6 автоматически выключит кнопку “Страницы”. Управление радиокнопками осуществляется аналогично управлению переключателями, за исключением того, что передача фокуса от одной кнопки к другой осуществляется не клавишей Tab, а клавишами-стрелками.

Рис.1.6 Фрагмент окна с группой радиокнопок

Однострочный и многострочный элементы ввода

Однострочный элемент ввода (см. Рис.6.1, справа от радиокнопки “Страницы”) - это графический аналог GET-элемента в Clipper’e. Назначение его то же - ввод и корректировка однострочных данных. Многострочный элемент ввода (рис.1.7) предназначен для обработки сложных текстовых данных (например, мемо-полей), содержащих символы “возврат каретки". В Clipper'е, как изветно, для этих целей используется функция MemoEdit ().

Рис.1.7 Фрагмент окна с многострочным элементом ввода

Блоки списка

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

Простой блок (рис.1.8) представляет собой прямоугольник с заголовком, в рамках которого отображается несколько строк-вариантов. Если весь перечень вариантов не размещается в пределах этого прямоугольника, справа он дополняется вертикальным лифтом, обеспечивающим прокрутку всего перечня. Блок может дополняться и горизонтальным лифтом в случаях, когда строки не размещаются в нем целиком. Пользуясь мышкой или клавишами-стрелками, пользователь подсвечивает требуемую строку. В некоторых случаях блоки допускают выбор сразу нескольких элементов. Множественный выбор осуществляется мышкой (либо непосредственно, либо при одновременном удержании в нажатом состоянии клавиши Shift или Ctrl - в зависимости от свойств блока).

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

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

Рис.1.8 Фрагмент окна с простым блоком списка

а) б)

Рис.1.9 Блок выпадающего списка в закрытом (а) и открытом (б) состоянии

Комбинированные блоки списка.

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


а) б)

Рис.1.10 Фрагменты окон с простым (а) и выпадающим (б) комбинированными блоками

Поля текста.

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

Панели вертикальной и горизонтальной прокрутки

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

Рис.1.11 Панель горизонтальной прокрутки

Элементы типа “группа”.

Элемент “группа" в CA-Visual Objects имеет две разновидности: простая группа и группа радиокнопок. Простая группа имеет чисто эстетическое значение, позволяя очерчивать рамкой любые функционально близкие друг другу элементы окна. Группа радиокнопок - рамка, очерчивающая только взаимосвязанные радиокнопки. Чисто внешне обе разновидности групп никак не отличаются друг от друга (рис.1.12). В то же время разница между ними есть. Простая группа - пассивный компонент окна (а следовательно, и приложения), в то время как группа радиокнопок - активный компонент, позволяющий упростить управление радиокнопками из программы.

Рис.1.12. Фрагмент окна с группами

Иконки (пиктограммы)

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

Рис.1.13. Фрагмент окна с иконкой.

1.1.3 Другие особенности интерфейса

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

Безусловная и полная поддержка мышки.

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

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

Как видно, интерфейс с пользователем, предлагаемый и поддерживаемый Windows, существенно более богат и сложен в сравнении с тем, что имеет место в DOS. Ясно, что непосредственное программирование такого интерфейса - задача весьма и весьма сложная. К счастью, CA-Visual Objects имеет достаточный набор средств, позволяющих автоматизировать и, в конечном итоге, максимально упростить процесс разработки интерфейса. В частности, все описанные выше окна, их компоненты и элементы управления в полной мере поддерживаются как встроенными средствами визуального программирования (оконным редактором, редактором меню), так и развитыми средствами языка программирования.

1.2 DOS и Windows: разные подходы к программированию

Графический интерфейс - не самое главное нововведение в Windows, по сравнению c DOS. Гораздо более важным является то, что Windows - мультизадачная операционная среда, призванная обеспечить одновременную работу нескольких программ. Это важнейшее свойство Windows обусловливает еще один уровень требований как непосредственно к прикладным программам, так и к системам их разработки. И первое среди таких требований - отказ от процедурного программирования.