Турбо С: руководство пользователя. Часть 2

Турбо С: руководство пользователя. Часть 2 - Стр. 9

Печать PDF
Индекс материала
Турбо С: руководство пользователя. Часть 2
Стр. 2
Стр. 3
Стр. 4
Стр. 5
Стр. 6
Стр. 7
Стр. 8
Стр. 9
Стр. 10
Стр. 11
Стр. 12
Стр. 13
Стр. 14
Стр. 15
Стр. 16
Стр. 17
Стр. 18
Стр. 19
Стр. 20
Стр. 21
Стр. 22
Стр. 23
Стр. 24
Стр. 25
Стр. 26
Стр. 27
Стр. 28
Стр. 29
Стр. 30
Стр. 31
Стр. 32
Стр. 33
Стр. 34
Стр. 35
Стр. 36
Стр. 37
Стр. 38
Стр. 39
Стр. 40
Стр. 41
Стр. 42
Стр. 43
Стр. 44
Стр. 45
Стр. 46
Стр. 47
Стр. 48
Стр. 49
Стр. 50
Стр. 51
Стр. 52
Стр. 53
Стр. 54
Стр. 55
Стр. 56
Все страницы
     растра  может  быть равным 0 и 1.  Из-за особенностей самого CGA,
     аппаратура, в действительности, воспринимает цвет изображения как
     цвет фона,  поэтому вы можете устанавливать его с помощью функции
     setbkcolor. (Удивительно, но факт.)

          Возможные цвета изображения приведены в  предыдущей таблице.

     CGA использует определенный цвет для отображения всех точек раст-
     ра, значение которых равно 1.

          Режимы, работающие  описанным   образом:   CGAHI,   MCGAMED,
     MCGAHI, ATT400MED, ATT400HI.


               Функции управления палитрой для CGA

          Так как палитра CGA предопределена, вам не следует использо-
     вать функцию setallpalette. Кроме того, функцию setpalette(index,
     actual_color) вы можете использовать только при index=0. (Это яв-
     ляется  альтернативным способом для установки цвета фона на CGA в
     actual_color.)



          Управление цветом на EGA и VGA
          ------------------------------

          На EGA палитра содержит 16 элементов из 64 возможных цветов,
     причем каждый из них может быть установлен пользователем.

                         - 69,70 -


          Вы можете  получить  текущую  палитру  с   помощью   функции
     getpalette, которая заполняет структуру размером с палитру (16) и
     массив действительных элементов палитры ("номера цветов для аппа-
     ратуры",  хранящихся  в палитре).  С помощью setpalette вы можете
     изменять  каждый   цвет   палитры   поодиночке,   а   с   помощью
     setallpalette - все сразу.

          По умолчанию палитра EGA соответствует 16 цветам CGA, приве-
     денным в предыдущей таблице,  - черный соответствует элементу  0,
     голубой - 1, ..., белый - 15. В GRAPHICS.H описаны константы, со-
     ответствующие значениям аппаратурных цветов: EGA_BLACK, EGA_WHITE
     и  т.д.  Кроме  того,  вы  можете получить эти величины с помощью
     getpalette.

          Поведение функции setbkcolor(color) различается на адаптерах
     CGA  и EGA.  На EGA setbkcolor переносит величину действительного
     цвета из color в нулевой элемент палитры.

          Как только цвета установлены, драйвер VGA начинает вести се-
     бя так же,  как драйвер EGA. Отличие лишь в том, что у него более
     высокое разрешение (и соответственно более мелкие  точки растра).


          Обработка ошибок в графическом режиме
          -------------------------------------

          Вот функции для обработки ошибок в графическом режиме:

     =================================================================

     grapherrormsg    возвращает строку с сообщением об ошибке для за-
                      данного кода ошибки

     graphresult      возвращает код ошибки для последней графической
                      операции, вызвавшей затруднения

     =================================================================

          Если при  вызове функции из графической библиотеки возникает
     ошибка (например, не найден шрифт, заданный settextstyle), то вы-
     рабатывается соответствующий внутренний код ошибки. Этот код мож-
     но узнать при помощи вызова функции graphresult.  Определены сле-
     дующие коды ошибок:


                         - 71,72 -


     -----------------------------------------------------------------
     код      символическая    соответствующая строка с сообщением
     ошибки   константа        об ошибке
     -----------------------------------------------------------------
      0       grOK             No error (нет ошибки)
     -1       grNoInitGraph    (BGI) graphics not installed
                               (графика не    запущена,    используйте
                               initgraph)
     -2       grNotDetected    Graphics  hardware  not  detected  (нет
                               оборудования)
     -3       grFileNotFound   Device driver file not found
                               (не найден файл драйвера устройства)
     -4       grInvalidDriver  Invalid device driver file
                               (неверный файл драйвера устройства)
     -5       grNoLoadMem      Not enough memory to load driver
                               (не хватает памяти для загрузки драйве-

                               ра)
     -6       grNoScanMem      Out of memory in scan fill
                               (выход за пределы памяти при сканирова-
                               нии)
     -7       grNoFloodMem     Out of memory in flood fill

                               (выход за пределы  памяти  при  "лавин-
                               ном" заполнении)
     -8       grFontNotFound   Font file not found
                               (не найден файл шрифта)
     -9       grNoFontMem      Not enough memory to load font
                               (не хватает памяти для загрузки шрифта)
     -10      grInvalidMode    Invalid graphics mode for selected
                               driver (недопустимый  графический режим
                               для заданного драйвера)
     -11      grError          Graphics error (ошибка графики)
     -12      grIOerror        Graphics I/O error (ошибка ввода/вывода
                               в графическом режиме)
     -13      grInvalidFont    Invalid font file
                               (неверный файл шрифта)
     -14      grInvalidFontNum Invalid font number
                               (неверный номер шрифта)
     -15      grInvalidDeviceNum Invalid device number
                               (неверный номер устройства)
     -18      grInvalidVersion Invalid version of file
                               (недопустимая версия файла)

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

                         - 73,74 -



          В результате  обращения  grapherrormsg(graphresult())  будет
     возвращена соответствующая строка (см. таблицу).

          Возвращаемый код ошибки изменяется  лишь  тогда,  когда  ка-
     кая-либо из графических функций сообщает об ошибке. Зануляется он
     только в результате успешного выполнения  функции  initgraph  или
     при вызове graphresult. Поэтому, если вы хотите знать, какая гра-
     фическая функция какую ошибку возвратила,  вам следует  сохранять
     значение graphresult во временной переменной.












          Запрос состояния
          ----------------

          Вот перечень функций запроса состояния в графическом режиме:

     =================================================================

     getarccoords      возвращает информацию о координатах последнего
                       обращения к arc или ellipse
     getaspectratio    возвращает коэффициент сжатия графического эк-
                       рана
     getbkcolor        возвращает текущий цвет фона
     getcolor          возвращает текущий цвет рисования
     getdrivename      возвращает имя текущего графического драйвера
     getfillpattern    возвращает заданный пользователем шаблон закра-
                       шивания
     getfillsettings   возвращает информацию о текущих шаблоне закра-
                       шивания и цвете
     getgraphmode      возвращает текущий графический режим
     getlinesettings   возвращает текущие стиль, шаблон и толщину ли-
                       нии
     getmaxcolor       возвращает  максимальное  допустимое  значение

                         - 75,76 -

                       точки растра
     getmaxmode        возвращает максимальный номер режима для теку-
                       щего драйвера
     getmaxx           возвращает текущее разрешение по оси x
     getmaxy           возвращает текущее разрешение по оси y
     getmodename       возвращает имя данного режима драйвера
     getmoderange      возвращает диапазон режимов для данного драй-
                       вера
     getpalette        возвращает текущую палитру и ее размер
     getpixel          возвращает цвет точки растра (x,y)
     gettextsettings   возвращает текущие шрифт, направление, размер и
                       выравнивание текста
     getviewsettings   возвращает информацию о текущем графическом ок-
                       не
     getx              возвращает координату x текущей позиции
     gety              возвращает координату y текущей позиции

     =================================================================

          В каждой категории графических функций Турбо Си имеется хотя
     бы одна функция запроса состояния.  Эти функции были упомянуты  в
     соответствующих разделах, а здесь они собраны все вместе. Все они

     начинаются с get... (исключение составляет категория функций, об-