Рис. 10.4. Прокрутка текста в окне

Средства для растровой графики

Пример 10.2.4. Всплывающие (pop-up) и спускаемые меню (pull-down menus); диалоговые окна (dialog boxes)

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

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

1. Пользователь выбирает заголовок меню.

2. Программа определяет, какая прямоугольная область будет заслонена.

3. С помощью процедуры readO делается копия заслоняемой области во внеэкранную пиксельную карту.

4. Процедура draw() рисует изображение меню в соответствующем месте.

5. Пользователь перемещает курсор к нужному пункту меню и отпускает кнопку мыши.

6. Приложение восстанавливает заслоненную часть экрана путем копирования внеэкранной пиксельной карты в ее прежнее положение.

а б Рис. 10.5. Спускаемое меню (а); восстановленное изображение (б)

Пример 10.2.5. Поддержка множественных окон В настоящее время является обычной практикой одновременный запуск нескольких приложений с перекрывающимися окнами. На рис. 10.6 изображен дисплей с несколькими окнами. Поскольку части одного окна перекрывают и заслоняют части другого, программа должна правильно восстанавливать эти области экрана, когда соответствующее окно перемещено или закрыто. Пусть, например, мы хотим нарисовать еще одно окно в позиции, отмеченной на рисунке. Тогда, как И прежде, мы должны: О прочитать с помощью read О область экрана, которая будет заслонена;


⇐ Предыдущая| |Следующая ⇒