Функция Получает текущий цвет линии, шаблон и толщину.
Синтаксис #include
void far getlinesettings(struct linesettingstype
far *lineinfo);
Файл, содержащий graphics.h
прототип
Описание getlinesettings заполняет структуру linesettings,
на которую указывает параметр lineinfo информаци-
ей, о текущем типе линий, толщине и шаблоне.
Структура linesettingstype определена в
graphics.h следующим образом:
struct linesettingstype{
int linestyle;
unsigned upattern;
int thickness;
};
linestyle определяет тип линий, который будет ис-
пользоваться ( непрерывная, пунктир, штрихпунк-
тир, штриховая). Перечисляемый тип line_styles,
определенный в graphics.h, дает символические
имена этим операциям:
-------------------------------------------
Название Знач. Описание
-------------------------------------------
SOLID_LINE 0 сплошная
DOTTED_LINE 1 пунктир
CENTER_LINE 2 штрихпунктир
DASHED_LINE 3 штриховая
USERBIT_LINE 4 тип линии, заданный
пользователем
-------------------------------------------
thickness определяет, будут ли последующие линии
тонкими или толстыми.
-------------------------------------------
Название Знач. Описание
-------------------------------------------
NORM_WIDTH 1 толшина в 1 пиксель
THICK_WIDTH 3 толщина в 3 пикселя
--------------------------------------------
upattern -это 16-битный шаблон, который использу-
ется, только когда linestyle равен USERBIT_LINE
(4). В этом случае каждый бит в шаблоне, установ-
ленный в 1, соответствует пикселю на линии в те-
кущем цвете. Например, сплошной линии соответстс-
вует upattern равный 0xFFFF ( рисуются все пиксе-
ли), а пунктиру соответствует upattern, равный
0x3333 или 0x0F0F. Если же параметр linestyle в
setlynestyle не равен USERBIT_LINE (!=4), то
upattern поддерживается, но игнорируется.
Возвращаемое Нет.
значение
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
вающими графический режим.
Смотрите также setlinestyle
Пример:
#include
#include
#include
#include
/* имена поддерживаемых типов линий */
char lname[] = {"SOLID_LINE",
"DOTTED_LINE",
"CENTER_LINE",
"DASHED_LINE",
"USERBIT_LINE"
};
int main(void)
{
/* Запрос автоопределения */
int graphdriver = DETECT, gmode, errorcode;
struct linrsettingstype lineinfo;
int midx,midy;
char lstyle[80],lpattern[80],lwigth[80];
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormsg(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
midx = getmaxx()/2;
midy = getmaxy()/2;
/* получить информацию о типе линии */
getlinesettings(&lineinfo);
/* преобразовать в строки */
sprintf(lstyle,"Тип линии: %s\n",lname[lineinfo.linestyle]);
sprintf(lpattern,"Шаблон определяемый пользователем: 0x%F",
lineinfo.upattern);
sprintf(lwigth,"Толщина линии: %d\n",lineinfo.thickness);
/* вывести информацию */
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(midx,midy,lstyle);
outtextxy(midx,midy+2*textheight("W"),lpattern);
outtextxy(midx,midy+4*textheight("W"),lwigth);
/* очистка */
getch();
closegraph();
return 0;
}