Функции для работы с текстом и графикой
Стандарт ANSI С не определяет функции для работы с текстом или графикой в первую очередь потому, что имеется широкое разнообразие аппаратных средств, чем затрудняется стандартизация. Тем не менее Borland С++ обеспечивает широкую поддержку работы с экраном и графикой для 16-разрядной среды DOS. Если используется DOS и нет необходимости переносить код на другой компилятор, то можно свободно использовать эти функции. Однако следует иметь в виду, что ни одна из описанных в этой главе функций не может быть использована для Windows пpoграммирования. Графический вывод в Windows осуществляется с использованием интерфейса прикладного программирования (Application Program Interface — API). Описанные в этом разделе функции относятся только к DOS. Прототипы и заголовочная информация для функций работы с текстом содержатся в файле conio.h. Прототипы и соответствующая информация для графической системы содержатся в файле graphics.h. Ни одна из описанных в этом разделе функций не определена стандартом ANSI С или С++.
Для использования графической системы необходимо скомпоновать библиотеку graphics.lib с программой. При использовании компилятора командной строки необходимо включить имя этой библиотеки в командную строку. Например, если программа называется test и используется компилятор командной строки, командная строка должна выглядеть следующим образом:
bcc test graphics.lib
При использовании интегрированной среды разработки надо не забывать добавлять файл graphics.lib к проекту.
Центральной концепцией для функций работы с текстом и графикой служит концепция окна, то есть активной области экрана, в пределах которой осуществляется вывод данных. Окно может быть размером с целый экран, что и задается по умолчанию, либо же иметь такие размеры, какие необходимы. Borland С++ использует слегка различную терминологию для текстовой и графической систем с целью сохранять эти системы раздельно друг от друга. Текстовые функции работают с окнами, в то время как графическая система использует область просмотра (viewport). Однако концепция в обоих случаях одна и та же. Вся выводимая информация содержится в активном окне. Это означает, что часть изображения, расположенная за пределами окна или области просмотра, автоматически отсекается.
При использовании графики программа должна в первую очередь инициализировать графическую систему с помощью вызова функции initgraph(). По окончании использования графики необходимо вызвать функцию closegraph() или restorecrtmode().
Важно понимать, что большинство текстовых и графических функций относится к окну или области просмотра. Например, функция gotoxy() устанавливает курсор в заданную точку с координатами х,у по отношению к окну, а не к экрану.
И последнее замечание. Когда экран функционирует в текстовом режиме, его левый верхний угол расположен в точке с координатами 1,1. В графическом режиме левый верхний угол представляет собой точку с координатами 0,0.