Этот макрос объединяет байты, задающие интенсивности компонентов цвета таким образом, что красному цвету соответствует младший байт.
При успешном выполнении функция CreatePen() возвращает дескриптор типа HPEN, при помощи которого осуществляется доступ к созданному перу. Возвращение нуля (NULL), как и для прочих GDI-функций, говорит об ошибке.
Функция CreatePen() получает три параметра. Для создания других объектов, например шрифта, требуется указать значительно больше параметров. Чтобы сделать эту операцию менее громоздкой, каждая функция создания объектов контекста реализована также в варианте с косвенной передачей данных. При этом функция получает один параметр, являющийся указателем на структуру, в которой заданы все необходимые атрибуты.
Для пера подобной структурой является L0GPEN. Эта структура может использоваться как параметр функции CreatePenlndirect(LOGPEN *lplgpn).
Контекст устройства
Следует обратить внимание на то, что толщина линии в L0GPEN задается не целым числом, а полем х структуры POINT lopnWidth.
По умолчанию в контексте задана кисть, выполняющая сплошную заливку областей белым цветом. Цветную сплошную заливку выполняет кисть, создаваемая при помощи функции CreateSol idBrushCCOLORREF crColor). Единственный параметр crColor определяет цвет заливки и задается так же, как аналогичный параметр пера.
Для штриховки областей кисть создается при помощи функции CreateHatchBrush (i nt fnStyle. COLORREF clrref). Первый параметр задает тип штриховки, а второй - цвет линий штриховки.
В следующем списке перечислены предопределенные значения типа штриховки: О HS_H0RIZ0NTAL - горизонтальная штриховка; О HS_VERTICAL - вертикальная штриховка; О HS_BDIAGONAL - линии штриховки составляют угол 45° с осью абсцисс; О HS_CR0SS - пересекающиеся горизонтальные и вертикальные линии; О HS_DIAGCROSS - пересекающиеся диагональные линии; О HS_FDIAGONAL - линии штриховки составляют угол 45° с осью абсцисс.
Пространство между линиями штриховки кисть заполняет цветом фона, задание которого будет описано ниже.