setwritemode

Функция            Устанавливает режим для вывода вграфическом
                   режиме.

Синтаксис          #include 
                   void far setwritemode(int mode);

Файл, содержащий   graphics.h
прототип

Описание           Определены следующие константы:

                        COPY_PUT = 0  /* MOV */
                        XOR_PUT  = 1  /* XOR */

                   Каждая константа связана с двоичной операцией,
                   выполняемый над байтом в строке и соответствующим
                   байтом на экране. COPY_PUT использует ассемблер-
                   ную команду MOV для перзаписи строки независимо
                   от того, что на экране. XOR_PUT использует коман-
                   ду XOR для комбинирования содержимого строки и
                   экрана. Две последовательно выполненные команды
                   XOR приведут к уничтожению строки и восстановле-
                   нию первоначального изображения на экране.

                   Замечание. setwritemode работает только с line,
                   linerel, lineto, rectangle и drawpoly.

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

Переносимость      Функция уникальна для Turbo C++. Она работает
                   только на компьютерах IBM PC и совместимых с ни-
                   ми, оснащенных дисплейными адаптерами, поддержи-
                   вающими графический режим.

Смотрите также      drawpoly line linerel lineto putimage

Пример:

#include 
#include 
#include 
#include 

int main()
{
/* Запрос автоопределения */
int graphdriver = DETECT, gmode, errorcode;
int xmax,ymax;

/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");

/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk)  /* если ошибка */
{
   printf("Ошибка :%s\n",grapherrormsg(errorcode));
   printf("Для останова нажмите любую клавишу\n");
   getch();
   exit(1);  /* завершение с кодом ошибки */
}
xmax = getmaxx();
ymax = getmaxy();
/* выбрать режим XOR */
setwritemode(XOR_PUT);
/* нарисовать линию */
line(0,0,xmax,ymax);
getch();
/* стереть линию, нарисовав ее же, поверх существующей */
line(0,0,xmax,ymax);
getch();
/* выбрать режим COPY */
setwritemode(COPY_PUT);
/* нарисовать линию */
line(0,0,xmax,ymax);
/* очистка */
getch();
closegraph();
return 0;
}