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

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

Печать 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
Все страницы
          Манипуляция экраном и графическим окном.
          ----------------------------------------

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

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

          Манипуляция экраном:
       cleardevice     очищает экран (активную страницу)
       setactivepage   устанавливает активную страницу для графическо-
                       го вывода
       setvisualpage   устанавливает номер видимой графической страни-
                       цы

          Манипуляция графическим окном:
       clearviewport   очищает текущее окно
       getviewsettings возвращает информацию о текущем окне
       setviewport     устанавливает окно для текущего графического вы-
                       вода

          Манипуляция образом:

       getimage        записывает  в память битовый образ заданной об-
                       ласти
       imagesize       возвращает число байт, требуемых для сохранения
                       прямоугольной области экрана
       putimage        выводит ранее сохраненный битовый образ на  эк-
                       ран

          Манипуляция точками растра:
       getpixel        возвращает цвет точки в (x,y)
       putpixel        вычерчивает точку в (x,y)

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

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


                         - 53,54 -

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

          С помощью функции setviewport вы можете  задать  графическое
     окно  ("фактический"  прямоугольный "экран").  Вы задаете позицию
     окна в абсолютных координатах экрана и  определяете необходимость
     буферизации  этого окна.  Для очистки окна вы можете использовать
     clearviewport. С помощью getviewsettings вы можете определить ко-
     ординаты окна в абсолютных координатах экрана, а также статус бу-
     феризации.

          С помощью getimage вы можете получить часть экранного  обра-
     за;  с  помощью  imagesize - вычислить число байт,  требуемых для
     сохранения этого образа в памяти;  а с помощью putimage - восста-
     новить этот образ в любом месте экрана.



          Координаты для всех функций вывода (рисования, закрашивания,
     вывода текста и т.д.) связаны с данным окном.

          Кроме того,  с помощью getpixel (возвращающей цвет  заданной
     точки)  и putpixel (вычерчивающей заданную точку заданным цветом)
     вы можете манипулировать цветом отдельных точек растра.
















                         - 55,56 -

          Вывод текста в графическом режиме

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

          Ниже приведено краткое описание функций,  осуществляющих вы-
     вод текста в графическом режиме.

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

       gettextsettings возвращает текущие  текстовые шрифт,  направле-
                       ние, размер и выравнивание.
       outtext         выводит строку в текущую позицию (ТП) экрана
       outtextxy       выводит строку в заданную позицию экрана
       registerbgifont регистрирует  скомпонованный  или   загруженный
                       пользователем шрифт
       settextjustify  устанавливает величину выравнивания текста, ис-
                       пользуемую функциями outtext и outtextxy
       settextstyle    устанавливает текущие текстовые шрифт, стиль  и
                       коэффициент увеличения знаков
       setusercharsize устанавливает отношение  ширины  к  высоте  для
                       штриховых (векторных) шрифтов
       textheight      возвращает высоту строки в точках растра
       textwidth       возвращает ширину строки в точках растра


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

          Графическая библиотека  включает  растровый шрифт 8x8 и нес-
     колько штриховых (векторных)  шрифтов,  используемых  для  вывода
     текста в графическом режиме.

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

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

                         - 57,58 -


          С помощью outtext и outtextxy вы можете выводить графический
     текст, а с помощью settextjustify - управлять выравниванием выво-
     димого текста (относительно ТП). С помощью settextstyle вы можете
     выбрать символьный шрифт,  направление (горизонтальное или верти-
     кальное) и размер (масштаб).  Для того чтобы получить текущие па-
     раметры текста, вызывается функция gettextsettings, которая запи-
     сывает   в   структуру   textsettings  текущие  текстовый  шрифт,
     выравнивание,  увеличение и направление.  Функция setusercharsize
     позволяет модифицировать ширину и высоту векторных шрифтов.

          Если буферизация "включена", весь вывод текстовых строк, вы-
     полняемый функциями outtext и outtextxy,  будет буферизоваться  в
     пределах графического окна.  Если же буферизация "выключена",  то
     эти функции будут исключать растровый шрифтовой вывод  при выходе
     за край окна какой-либо части текстовой строки;  вывод векторного
     шрифта будет усекаться по край окна.

          Функции textheight (которая вычисляет высоту строки в точках
     растра)  и  textwidth  (которая  вычисляет ширину строки в точках
     растра) можно использовать для определения размера на экране  за-
     данной текстовой строки.


          Принятый по  умолчанию  растровый шрифт 8x8 встроен в графи-
     ческий пакет,  поэтому во время работы программы он всегда досту-
     пен. Штриховые шрифты хранятся каждый в отдельном файле .CHR; они
     могут быть загружены во время выполнения программы или преобразо-
     ваны в файлы .OBJ (с помощью утилиты BGIOBJ) и скомпонованы с ва-
     шим файлом .EXE.

          Обычно функция settextstyle загружает  шрифтовой  файл  пос-
     редством выделения памяти для шрифта и загрузки с диска соответс-
     твующего файла .CHR.  В качестве альтернативы  этой  динамической
     схеме  загрузки  вы  можете  скомпоновать файл символьного шрифта
     (или несколько таких файлов) непосредственно  в  ваш  исполняемый
     файл. Для этого, во-первых, вы преобразуете файл .CHR в файл .OBJ
     (с помощью утилиты BGIOBJ), а затем помещаете в текст вашей прог-
     раммы   вызов   функции   registerbgifont   (перед  обращением  к
     settextstyle) для регистрации символьного шрифта.  При компоновке
     вашей программы вы должны скомпоновать файлы .OBJ для тех штрихо-
     вых шрифтов, которые вы зарегистрировали.

          Замечание: Использование registerbgifont является  углублен-
     ным методом программирования,  и поэтому не рекомендуется для на-

                         - 59,60 -


     чинающих программистов. Более детально эта функция описана в При-
     ложении D Справочного руководства.