Программирование для IBM OS/2© Александр Фролов, Григорий ФроловТом 25, М.: Диалог-МИФИ, 1993, 286 стр. 4 РИСОВАНИЕ ТЕКСТА
Создавая приложения Presentation Manager, вы не сможете использовать для рисования в его окнах приемы, знакомые вам из опыта программирования для операционной системы MS-DOS . Приложения Presentation Manager не могут вызывать прерывания BIOS или такие стандратные функции вывода, как printf, putc или puts. Однако, как вы увидите дальше, в вашем распоряжении имеются куда более мощные средства. Для рисования в среде Presentation Manager имеется набор функций графического интерфейса GPI (Graphics Programming Interface ), в котором есть все необходимые средства для отображения текста, графических изображений, составленных из графических примитивов, таких как линия или окружность, а также растровых графических изображений. Функции этого интерфейса мы подробно рассмотрим позже в одном из следующих томов "Библиотеки системного программиста". В этой главе мы ограничимся только кратким знакомством с принципами рисования в окнах приложений Presentation Manager. Следует заметить, что интерфейс GPI позволяет программистам создавать аппаратно-независимые приложения, которые будут работать, например, с любым видеоадаптером и любым принтером, если в составе операционной системы IBM OS/2 для них есть драйверы. Аппаратная независимость сильно упрощает программирование, исключая необходимость учитывать особенности различных моделей "почти стандартных" устройств компьютера. Одной из особенностей приложений Presentation Manager является централизованный способ рисования содержимого окна. Как правило, приложение рисует в своем главном окне только в процессе обработки сообщения с кодом WM_PAINT (хотя можно рисовать и в любое другое время). Сообщение WM_PAINT передается системой Presentation Manager функции окна в тот момент, когда необходимо обновить содержимое окна. Таким образом, приложение Presentation Manager должно быть готово выполнить операцию обновления окна в любой момент, как только это потребуется. Для этого приложение должно хранить в памяти текущее состояние окна, пользуясь которым обработчик сообщения WM_PAINT сможет выполнить операцию полной или частичной перерисовки содержимого окна Client Window. |