Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2_изд_испр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

Восстановление установок по умолчанию

void graphdefaults(void); Возвращает все установки, которые имели место при выполнении функции initgraph, текущее окно – во весь экран, текущую позицию курсора – в точку с координатами (0, 0).

16.2.3. Размещение на экране Окна

void setviewport(int left, int top, int right, int bottom, int clip); Устанавливает границы текущего окна. Курсор перемещается в позицию (0, 0) окна. Параметр clip определяет, ограничен ли вывод пределами окна или нет. Если clip не равен 0, то вывод выполняется только в пределах окна.

void getviewsettings(struct viewporttype* viewport); Дает информацию о текущем окне.

Структура viewporttype имеет вид:

struct viewporttype{

int left;

int top;

int right;

int bottom;

int clip;

}

void clearviewport(void); Очищает текущее окно(фактически закрашивает его установленным цветом фона) и перемещает курсор в позицию (0, 0) данного окна.

void cleardevice(void); Очищает весь экран цветом фона и перемещает курсор в начало экрана(абсолютные координаты (0, 0)).

void getimage(int left, int top, int right, int bottom, void* bitmap); Сохраняет битовое изображение прямоугольной области экрана в отведенной памяти. Использует абсолютные координаты.

void putimage(int left, int top, void* bitmap, int op); Извлекает сохраненный функцией getimage битовый образ и располагает его в области с координатами левого верхнего угла (left, top). Параметр op определяет, как взаимодействуют пиксели "старого" и "нового" экранов. Возможные значения определяются символическими константами:

0 COPY_PUT "Старый" экран полностью заменяется "новым".

1 XOR_PUT Стираются пиксели, совпадающие в обоих экранах.

2 OR_PUT Сохраняются рисунки обоих экранов

3 AND_PUT Сохраняются только пиксели, совпадающие в обоих экранах.

4 NOT_PUT "Старый" экран заменяется инверсным изображением "нового".

Эти функции позволяют реализовывать так называемые всплывающие окна, сохраняя область экрана, закрываемую ими.

Поскольку в памяти, кроме битового изображения, запоминается информация о высоте и ширине области, то для определения необходимого размера памяти для хранения используется специальная функция:

unsigned imagesize(int left, int top, int right, int bottom);

Для выделения памяти под сохраняемую область рекомендуется импользовать функцию:

void* malloc(unsigned size); Прототип в alloc.h.

Координаты курсора и перемещения

int getmaxx(void); Возвращает максимальную координату x для установленного драйвера и видеорежима. Для принятого видеоадаптера VGA она равна 639.

int getmaxy(void); То же для координаты y. Для VGA она равна 479.

int getx(void); Возвращает относительную(зависящую от окна) координату x курсора.

int gety(void); То же для координаты y.

void moverel(int dx, int dy); Перемещает курсор на dx пикселей по горизонтали и dy пикселей по вертикали относительно текущего положения.

void moveto(int x, int y); Перемещает курсор в точку (x, y) в относительных координатах окна.

16.2.4. Вывод на экран Текст

void outtext(char* textstring); Выводит текстовую строку с текущей позиции курсора. Используются установленные: фонт, направление, размер символа и выравнивание. Если направление горизонтальное и выравнивание LEFT_TEXT, то позиция курсора перемещается на расстояние, равное длине строки. При других параметрах позиция курсора не меняется.

void outtextxy(int x, int y, char* textstring); Выводит строку с относительных координат окна x и y.

Курсор

void _setcursortype(int cur_t); Управляет видом курсора. Возможные значения параметра cur_t:

_NOCURSOR Выключает курсор

_SOLIDCURSOR Сплошной прямоугольный курсор

_NORMALCURSOR Подчеркивание