ВЫВОД ТЕКСТА В ГРАФИЧЕСКОМ РЕЖИМЕ. Программирование на Си/С
Добавил: | DMT |
Дата создания: | 28 июня 2008, 22:14 |
Дата обновления: | 28 июня 2008, 22:51 |
Просмотров: | 16278 последний сегодня, 18:02 |
Комментариев: | 0 |
Вывод на экран монитора производится либо в текстовом режиме, либо в графическом . При переходе к текстовому режиму содержимое видеопамяти не изменяется. При переходе от текстового режима к графическому содержимое видеопамяти очищается, поэтому необходимо иметь функции вывода текстовой информации в графическом режиме. Для этой цели предназначены функции void outtextxy(int x, int y, char far *textstring); void outtext(char far *textstring), где (x,y) - координаты точки, относительно которой производится вывод текстовой строки, находящейся по адресу textstring . Для изменения размера букв применяется функция void settextstyle(int font, int direction, int charsize), где font - номер шрифта для вывода букв; direction - направление (горизонтальное либо вертикальное); charsize - коэффициент увеличения размера шрифта. Например, чтобы увеличить в два раза размер шрифта, установленного по умолчанию, следует вызвать функцию settextstyle следующим образом: settextstyle(DEFAULT_FONT, HORIZ_DIR, 2). Вывод текста производится относительно опорной точки. Опорная точка в выводимой строке может занимать одно из 9 различных положений - в верхней левой точке, в верхней средней, в верхней правой и т.д. (Перебираются все пары слов, полученные комбинированием одного из слов "верхняя", "средняя", "нижняя" с одним из слов "левая", "средняя", "правая"). Положение опорной точки изменяется функцией void settextjustify(int horiz, int vert), где целые числа horiz и vert принимают значения 0, 1, 2 . По умолчанию текст выводится так, что опорная точка CP находится в левом верхнем углу пространства, занимаемого текстом. Например, после вызова outtext("ababababa") положение выведенного текста и CP будет следующим:
Для работы с текстом в графическом режиме полезно иметь функции, аналогичные функциям printf и scanf. Приведем пример, как можно написать эти функции, используя возможность создания функций с переменным числом параметров.
|