Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 52


Вернемся к COLORREF. Опять обратимся к заголовочному файлу, но на сей раз не к wingdi.h, а к windef.h:

typedcf DWORD   COLORREF;

Понятно, что COLORREF - это двойное слово. Оно кодируется сле­дующим образом:

OxOObbggrr

т. е. младший байт определяет интенсивность красного, второй - зелено­го, третий - синего цвета. Старший байт должен быть нулевым. Для того чтобы облегчить жизнь пользователю, Microsoft в wingdi.h вставила макрос RGB:

«define RGBfr. g, b) ( (COLORREF) (((BYTF.)(r) | ((WORD) ((BYTEKg)) <-'X ))

(((d/aokd) (ija.ij-:) (p)) «\c)))

С первого взгляда в этом не разобраться. Поэтому приведу пример оп­ределения цвета с RGB - значениями 0, 100, 200

RGB(0, 100,200);

Стало понятнее, не правда ли?

При нормальном завершении функция возвращает предыдущее значение цвета пикселя. Если возвращаемое значение равно -1, то по говорит либо о возникновении ошибки, либо о том, что координаты пикселя вышли за пределы рабочей области окна.

60

Теперь мы готовы прорисовывать пиксели везде, где только можно. А если мы сумеем прорисовывать один пиксель, то сможем прорисовать и много. Но для того, чтобы рисовать, скажем, прямую, необходимо знать и реализовать в программе алгоритм прорисовки линий. То же можно сказать и о кругах, эллипсах и т. д. Думаю, что перспектива самостоя­тельной разработки этих алгоритмов читателю вовсе не улыбается. Но нет ничего страшного, команда разработчиков Win32 и здесь сняла проблему с программистов. Перейдем к достаточно обширной теме под названием

РИСОВАНИЕ ГРАФИЧЕСКИХ ПРИМИТИВОВ

Создание пера для рисования линий

Рисование графических примитивов производится с помощью перьев. В Windows'95 есть три предопределенных пера - черное (BLACK_PEN), белое (W1IITE_PEN) и прозрачное (NULL_PEN). При создании окна по умолчанию ему присваивается черное перо. Хэндл каждого из них может быть получен с помощью функции GetStockObjectQ. Естественно, что программиста ие может удовлетворить столь малое число перьев, поэто­му для прорисовки линий можно воспользоваться пером, созданным в программе посредством вызова функции CreatePenQ. Как всегда, обраща­емся к файлам заголовков, в данном случае - к файлу wingdi.h:




Начало  Назад  Вперед



Книжный магазин