Графическая подсистема
Одним из наиболее значительных отличий ОСWindows от старой доброй MS-DOS заслуженно считается визуальный интерфейс. Нельзя не отметить, что первопроходцем в создании графической среды была отнюдь не компания Microsoft. Использующие графику прототипы разрабатывались еще в 70-х годах (Xerox Palo Alto Research Center). Пальма первенства в разработке графической ОС принадлежит фирме Apple Computer, которая в январе 1983 года сообщила о создании ОС Liza. Microsoft заявила о работе над Windows только в ноябре 1983 года, а первая версия, Windows 1.0, вышла в свет спустя ровно два года. Между прочим, за этот период Apple уже успела анонсировать знаменитый Macintosh (январь 1984 г.).
Графический интерфейс пользователя (Graphical User Interface, GUI) Windows за более чем двадцать лет существования значительно расширился и был улучшен. Основой GUI служит графический интерфейс устройства (Graphics Device Interface, GDI). По большому счету GDI является языком графического программирования. Инженеры Microsoft добились того, что Windows абстрагирована от конкретного графического устройства, будь то дисплей, принтер, плоттер и т. п. Интерфейс GDI поддерживает аппаратно-независимую графику, поэтому Windows требуется лишь драйвер конкретного устройства.
Графические функции 32-разрядной Windows в основном сосредоточены в динамически подключаемой библиотеке GDI32.DLL. Кроме того, пока еще используется 16-разрядная библиотека GDI.EXE. Свое нестандартное расширение она унаследовала еще от первых версий Windows. Эти библиотеки общаются с файлами драйверов графических устройств *.DRV. Что же умеет GDI? Очень многое:
•Управлять выводом текста и шрифтами.
•Управлять цветом и палитрами.
•Работать с графическими примитивами (образами, путями, заливками и т. д.).
•Отображать битовые образы (bitmaps, icons, cursors).
•Работать с метафайлами.
•Взаимодействовать с графическими устройствами.
Разработчики Borland Delphi провели огромную работу с целью упростить общение с GDI (рис. 10.1). Первое, что заслуживает похвалы: программист Delphi (в отличие от своих коллег, пишущих в среде Microsoft Visual C++) освобожден от кропотливой работы, связанной с получением и освобождением контекста устройства. Для этого создан специальный класс TCanvas (холст), инкапсулирующий в себе подавляющее большинство функций GDI и решающий проблемы с дескриптором контекста устройства.
Создатели Delphi внедрили класс TCanvas практически во все графические элементы управления, что позволило использовать возможности деловой графики при работе с такими компонентами.
Вместе с тем, если набора возможностей TCanvas для воплощения ваших художественных фантазий недостаточно, возможна работа напрямую с методами Win32 API.
В этой главе наряду с графическими функциями Delphi будут рассмотрены и многие функции GDI. Такой подход позволит создать целостную картину возможностей программирования деловой графики в Windows.
Дата добавления: 2016-03-15; просмотров: 1406;