BOLD_FONT

Большинство фонтов .chr, находящихся в директории BGI, не содержат русских символов, однако там есть директория Rus, внутри которой есть соответствующие русифицированные фонты. Для работы можно их просто переписать в директорию BGI, заменив соответствующие нерусифицированные. Кроме того, в директории Rus есть еще несколько русифицированных фонтов, которые можно использовать в программе с помощью функции installuserdriver. Там же находится программа Редактор фонтов Fe.exe, с помощью которой можно корректировать отдельные символы штриховых фонтов.

void settextstyle(int font, int direction, int charsize); Устанавливает фонт, направление вывода текста(горизонтальное, символическая константа – HORIZ_DIR(0) и вертикальное(VERT_DIR(1), поворот на 900 против часовой стрелки), коэффициент увеличения символа(0 – 10). Если использовать точечный DEFAULT_FONT, то при charsize=5 размер символ составляет 40*40 пикселей. Значение charsize=0 используется только для штриховых фонтов и соответствует множителю по умолчанию 4 либо коэффициенту, заданному функцией setusercharsize.

Пример.

settextstyle(EUROPEAN_FONT, VERT_DIR, 3);

void getsettingstype(struct * texttypeinfo); Дает информацию о текущем текстовом фонте. Структура textsettingstype имеет вид:

struct textsettingstype{

int font;

int direction;

int charsize;

int horiz; // Параметры выравнивания по горизонтали

int vert; // и вертикали, см. функцию settextjustify

}

Пример. После действия функции settextstyle примера будем иметь:

gettextsettings(&cur_text);

cur_text.font à EUROPEAN_FONT

cur_text.direction à VERT_DIR

cur_text.charsize à 3

void settextjustify(int horiz, int vert); Устанавливает выравнивание выводимого текста относительно текущего положения курсора. Задает 3 возможных положения текста в обоих направлениях. Эти положения определяются символическими константами:

по горизонтали:

0 LEFT_TEXT // Курсор слева от текста

1 CENTER_TEXT // Курсор по центру

2 RIGHT_TEXT // Курсор справа от текста

по вертикали:

0 BOTTOM_TEXT // Курсор под текстом

1 CENTER_TEXT // Курсор по центру

2 TOP_TEXT // Курсор над текстом

int textheight(char* string); Возвращает высоту текстовой строки в пикселях.

int textwidth(char* string); Возвращает длину текстовой строки в пикселях.

Эти функции полезны при расчете растояний между строками, размеров окон, в которые строки выводятся, и т.п.

void setusercharsize(int multx, int divx, int multy, int divy); Позволяет задать нецелые коэффициенты увеличения символов по горизонтали и вертикали. Коэффициент по горизонтали равен multx / divx, по вертикали – multy / divy.

Пример. Увеличение по вертикали на 50%, по горизонтали – вдвое.

setusercharsize(2, 1, 3, 2);

Замечание. Функция работает только в том случае, если в предыдущем вызове функции settextstyleтретий параметр charsize равен 0.

Если в программе требуется использование штрихового фонта, который не входит перечень символических констант BGIсистемы, то для его установки применяют функцию:

int installuserdriver(char* full_path); Параметр full_path указывает полный путь к файлу .chr, возвращается идентификатор файла, который позже используется в функции settextstyle.

Пример.

fn03 = installuserdriver("c:\bc\bgi\rus\fn03.chr");

……………………………………………………

settextstyle(fn03, HORIZ_DIR, 2);