settextstyle
Функция Устанавливает текущие характеристики текста для
графического вывода.
Синтаксис #include <graphics.h>
void far settextstyle(int font,int direction,
int charsize);
Файл, содержащий graphics.h
прототип
Описание settextstyle устанавливает шрифт текста,
направление отображения текста и размер символов.
Вызов settextstyle действует для любых текстов,
выводимых с помощью outtext и outtextxy.
Параметры font, direction и charsize, передаваемые
в settextstyle, описаны следующим образом:
font: допустимы: один шрифт с матрицей 8х8 бит и
несколько "стилизованных" шрифтов. По умолчанию
используется шрифт с матрицей 8х8 битов.
Перечисленные font_names, определенные в
graphics.h, определяют названия различных шрифтов(
смотри таблицу):
-------------------------------------------
Имя Знач. Описание
-------------------------------------------
DEFAULT_FONT 0 шрифт 8х8 бит
TRIPLEX_FONT 1 утроенный шрифт
SMALL_FONT 2 малый шрифт
SANSSERIF_FONT 3 шрифт sans-serif
GOTHIC_FONT 4 готический шрифт
-------------------------------------------
Битовый шрифт, используемый по умолчанию, встроен
в графическую систему. Стилизованные шрифты
храняться в дисковых файлах *.CHR и по одному
могут храниться в памяти. Поэтому при выборе
шрифта, отличного от загруженного в систему,
необходимо загрузить соответствующий *.CHR-файл с
диска.
Для избежания этих загрузок при использовании
нескольких шрифтов вы можете поместить шрифтовые
файлы в вашу программу при компановки. Это
осуществляется путем преобразования их в объектные
файлы с помощью утилиты BGIOBJ и регистрации их
через register- bgifont, как описано в файле
UTIL.DOC, поставляемом вместе с Borland C++.
direction: поддерживается два направления -
горизонтальный текст (слева направо) и
вертикальный текст (повернут на 90 градусов против
часовой стрелки). По умолчанию наравление равно
HORIZ_DIR.
-------------------------------------------
Имя Знач. Описание
-------------------------------------------
HORIZ_DIR 0 слева направо
VERT_DIR 1 снизу вверх
-------------------------------------------
charsize: размер каждого символа может быть
увеличен фактором charsize. Значение charsize
равное 0 используется только со стилизованными
шрифтами, а ненулевое значение charsize можно
использовать и с основным битовым шрифтом.
1) Если charsize равен 1, outtext и outtextxy
будут отображать шрифтовую матрицу 8х8 бит в
прямоугольник 8х8 пикселов на экране.
2) Если charsize равен 2, эта функция отобразит
матрицу 8х8 бит в прямоугольник 16х16 пикселов
на экране, и т.д.( до ограничения в 10 раз
больше от нормального размера).
3) Когда charsize равен 0, функции вывода outtext
и outtextxy увеличивают шрифт текста используя
либо фактор увеличения символов(4) по
умолчанию, либо размер шрифта определенный
пользователем, используя setusercharsize.
Используйте также textheight и textwidth для
определения размера шрифта.
Возвращаемое Нет.
значение
Переносимость Функция уникальна для Borland C++. Она работает
только на компьютерах IBM PC и совместимых с ними,
оснащенных дисплейными адаптерами, поддерживающими
графический режим. Функция не совместима с
Windows.
Смотрите также gettextsettings, graphresult,
installuserfont, settextjustify, setusercharsize,
textheight, textwidth.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
/* имена поддерживаемых шрифтов */
char *font[] = {"DEFAULT_FONT",
"TRIPLEX_FONT",
"SMALL_FONT",
"SANS_SERIF_FONT",
"GOTHIC_FONT"
};
int main(void)
{
/* Запрос автоопределения */
int graphdriver = DETECT, gmode, errorcode;
int style,midx,midy;
int size=1;
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
midx = getmaxx()/2;
midy = getmaxy()/2;
settextjustify(CENTER_TEXT,CENTER_TEXT);
/* цикл по шрифтам */
for(style=DEFAULT_FONT;style<GOTHIC_FONT;style++)
{
cleardevice();
if(style==TRIPLEX_FONT)
size = 4;
/* установить тип шрифта */
settextstyle(style,HORIZ_DIR,size);
/* вывести сообщение */
outtextxy(midx,midy,fname[style]);
getch();
}
/* очистка */
getch();
closegraph();
return 0;
}
|