русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управление экраном и памятью в текстовом режиме


Дата добавления: 2013-12-23; просмотров: 759; Нарушение авторских прав


 

В текстовом режиме можно управлять размерами активного окна, курсором, цветом фона и цветом текста. К функциям управления экраном относятся функции задания и очистки экрана, управления курсором и управление цветом. Функции задания окна и его очистки были приведены в первой главе. Это функции window() и clrscr().

Следующая функция – это функция позиционирования курсора в пределах активного окна. Ее прототип

void gotoxy(int x, int y);

здесь x и y – координаты относительно активного окна.

Функции

int wehrex(); int wehrey();

возвращают координаты x и y текущего положения курсора.

Установкой или заменой текстового режима управляет функция textmode() с прототипом

int textmode(int mode);

здесь аргумент mode задает режим печати, а именно количество строк на экране, количество символов в строке и цвет. Он может быть задан в виде макроса или в виде числового эквивалента [2].

Современная техника позволяет выводить текст в цвете. Можно определить как цвет текста, так и цвет фона. Однако использовать цвет могут только специальные функции, связанные с оконным интерфейсом. Такие функции как printf() для этого не предназначены.

Для изменения цвета текста предназначена функция textcolor(). Ее прототип

void textcolor(int color);

Аргумент color может принимать значения от 0 до 15. Каждому значению соответствует свой цвет. (Число может быть заменено соответствующим макросом). Кроме того, textcolor() позволяет делать цвет мигающим (blink). Код этого аргумента - 128. Для того, чтобы сделать цвет мигающим надо применить побитовую операцию “OR” к цвету и величине BLINK. Например, для вывода текста красным мигающим цветом надо применить функцию

textcolor( RED|BLIK).

Изменение цвета текста оказывает действие только на вновь выводимый текст и не оказывает никакого действия на ранее введенный текст.



Для установки цвета фона используется функция

void textbackground(int color);

Здесь аргумент color имеет те же значения, что и в функции textcolor().

Функция clrscr() не только очищает активное окно, но и заполняет его цветом, заданным в функции background().

Пример 9.2.Использование функций работы с текстом.

# include <conio.h>

main(void)

{

register int ctext< cback;

textmode(C80); /* 40 символов, 25 строк, цветовой */

for(ctext = BLUE; ctext<=WHITE; ctext++)

{

for(cback = BLACK; cback<=LIGHTGRAY; cback++)

{

textcolor(ctext);

textbackground(cback);

cprintf(“ТЕКСТ”);

}

cprintf(“\n”);

}

textcolor(WHITE|BLINK);

textbackground(BLACK);

cprintf(“КОНЕЦ ТЕКСТ”);

textmode(LASTMODE);

RETURN(0);

}

Организация видеопамяти при работе с текстом следующая. Каждому символу соответствует 2 байта. В одном из них хранится код символа, в другом - атрибут символа. Байт атрибута имеет следующий вид:

В Ф Ф Ф С С С С

 

где СССС-4 битовый двоичный код символа; ФФФ – 3-битовый двоичный код фона; В – признак мигания(1 – мигание включено,0- выключено).

Так как для цвета фона выделено 3 бита, то цветов фона может быть только 8, а для цветов символа, задаваемого четырьмя битами – 16 цветов.

Более того, любой цвет формируется смешением красного (R-red), зеленого (G-green) и голубого (B-blue) цветов. В байте атрибута мы можем указать, какой бит за какой цвет отвечает:

В R G B С R G B

 

При этом третий бит отвечает за яркость цвета символа. Если мы будем рассматривать последние 3 бита, то комбинация 0001 будет соответствовать цвету BLUE (1), в то время как 1001 будет соответствовать цвету LIGHTBLUE (9). Соответственно 0000- черный цвет (0). 1111- белый цвет (15).

Функция, которая позволяет задавать атрибут, имеет прототип

void textattr(int newattr);

Например, задать атрибут, соответствующий красному символу на черном фоне, можно следующими способами:

textattr(( BLACK<<4)+ RED+ BLINK );

 

или textattr(0x80);

Двоичная запись шестнадцатеричного числа 0х80 имеет вид 10000100. Сравните его с битами атрибута.

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

int gettext(int left,int top,int right, int bottom, void*destin);

int puttext(int left,int top,int right, int bottom, void*sourse);

int movetext(int left,int top,int right, int bottom, int destleft, int desttop);

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

Все прототипы функций хранятся в заголовочном файле CONIO.H

 



<== предыдущая лекция | следующая лекция ==>
Модели памяти | Список рекомендованных источников


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.