Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Справка функциям С++.doc
Скачиваний:
61
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

Getimage

-----------------------------------------------------------------

НазначениеСохраняет часть экрана в заданной области памя-

ти.

Синтаксис #include<graphics.h>

void far getimage(int left, int top, int right,

int bottom, void far *bitmap);

Прототип вgraphics.h

Замечанияgetimage сохраняет образ прямоугольной области

экрана в памяти. left, top, right и bottom опи-

сывают экранный прямоугольник. bitmap указывает

на область памяти, в которой будет сохранен об-

раз. Первые два слова этой области используются

для хранения ширины и высоты прямоугольника;

оставшиеся слова хранят сам образ.

ВозвращаемоеНет.

значение

ПереносимостьДанная функция работает только на IBM PC и сов-

местимых моделях при наличии соответствующих

графических адаптеров.

Пример

#include<alloc.h>

#include<graphics.h>

main()

{

/* требование автоопределения */

int graphdriver = DETECT, graphmode;

void *buffer;

unsigned size;

/* инициализация графики */

initgraph(&graphdriver, &graphmode, "");

size = imagesize(0,0,20,10);

/* получить память для хранения образа */

buffer = malloc(size);

/* записать биты */

getimage(0, 0, 20, 10, buffer);

/* ... */

/* восстановить образ */

putimage(0, 0, buffer, COPY_PUT);

/* освободить buffer */

free(buffer);

closegraph();

}

-----------------------------------------------------------------

Getlinesettings

-----------------------------------------------------------------

НазначениеПолучает текущий стиль линии, шаблон и толщину.

Синтаксис #include<graphics.h>

void far getlinesettings(struct

linesettingstype far *lineinfo);

Прототип в graphics.h

Замечанияgetlinesettings заносит в структуру

linesettingstype, на которую указывает

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, соответствует точке

линии, вычерчиваемой в текущем цвете. Например,

сплошная линия соответствует uputern равным

0xFFFF, а штриховая линия может быть представ-

лена как 0x3333 или 0x0F0F. Если же параметр

linestyle не равен USERBIT_LINE (!=4), то, хотя

параметр upattern все равно должен быть исполь-

зован, он игнорируется.

ВозвращаемоеНет.

значение

ПереносимостьДанная функция работает только на IBM PC и сов-

местимых моделях при наличии соответствующих

графических адаптеров.

Пример

#include<conio.h>

#include<graphics.h>

main()

{

/* требование автоопределения */

int graphdriver = DETECT, graphmode;

struct linesettingstype saveline;

/* инициализация графики */

initgraph(&graphdriver, &graphmode, "");

/* сохраняет текущий стиль линии*/

getlinesettings(&saveline);

setlinestyle(SOLID_LINE, 0, THICK_WIDTH);

/* вычертить толстой линией

маленький прямоугольник */

rectangle(10, 10, 17, 15);

/* восстановить стиль */

setlinestyle(saveline.linestyle,

saveline.pattern,

saveline.thickness);

getche();

closegraph();

}

-----------------------------------------------------------------