Структура EXTLOGPEN (wingdi.h)

Структура EXTLOGPEN определяет стиль, ширину и атрибуты кисти для расширенного пера. Эта структура используется функцией GetObject при получении описания пера, созданного при создании приложения с именем функции ExtCreatePen .

Синтаксис

typedef struct tagEXTLOGPEN {
  DWORD     elpPenStyle;
  DWORD     elpWidth;
  UINT      elpBrushStyle;
  COLORREF  elpColor;
  ULONG_PTR elpHatch;
  DWORD     elpNumEntries;
  DWORD     elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;

Члены

elpPenStyle

Сочетание типа пера, стиля, стиля конца и стиля соединения. Значения из каждой категории можно получить с помощью побитового оператора AND с соответствующей маской.

Элемент elpPenStyle , замаскированный PS_TYPE_MASK, имеет одно из следующих значений типа пера.

Значение Значение
PS_GEOMETRIC Перо геометрическое.
PS_COSMETIC Ручка косметическая.
 

Элемент elpPenStyle , замаскированный PS_STYLE_MASK, имеет одно из следующих значений стилей пера:

Значение Значение
PS_DASH Ручка пунктирная.
PS_DASHDOT Перо имеет чередующиеся дефисы и точки.
PS_DASHDOTDOT Перо имеет чередующиеся дефисы и двойные точки.
PS_DOT Ручка пунктирная.
PS_INSIDEFRAME Ручка сплошная. При использовании этого пера в любой функции рисования GDI, которая принимает ограничивающий прямоугольник, размеры фигуры сужаются таким образом, что она полностью помещается в ограничивающий прямоугольник с учетом ширины пера. Это относится только к PS_GEOMETRIC ручкам.
PS_NULL Ручка невидимая.
PS_SOLID Ручка сплошная.
PS_USERSTYLE Перо использует массив стилей, предоставленный пользователем.
 

Следующая категория применяется только к PS_GEOMETRIC ручкам. Член elpPenStyle , замаскированный PS_ENDCAP_MASK, имеет одно из следующих значений конца.

Значение Значение
PS_ENDCAP_FLAT Крышки конца линии плоские.
PS_ENDCAP_ROUND Концевы линии являются круглыми.
PS_ENDCAP_SQUARE Концы линии квадратные.
 

Следующая категория применяется только к PS_GEOMETRIC ручкам. Член elpPenStyle , замаскированный PS_JOIN_MASK, имеет одно из следующих значений соединения.

Значение Значение
PS_JOIN_BEVEL Соединения линий скошены.
PS_JOIN_MITER Соединения строк объединяются, когда они находятся в пределах текущего ограничения, установленного функцией SetMiterLimit . Соединение скошено, когда оно превысит ограничение.
PS_JOIN_ROUND Соединения строк являются круглыми.

elpWidth

Ширина пера. Если элемент elpPenStyle PS_GEOMETRIC, это значение представляет собой ширину строки в логических единицах. В противном случае линии являются косметическими, и это значение равно 1, что указывает на линию шириной в один пиксель.

elpBrushStyle

Стиль кисти пера. Значение члена elpBrushStyle может быть одним из следующих.

Значение Значение
BS_DIBPATTERN Задает кисть шаблона, определенную спецификацией DIB. Если elpBrushStyle BS_DIBPATTERN, член elpHatch содержит маркер упакованного DIB. Дополнительные сведения см. в разделе обсуждение в elpHatch.
BS_DIBPATTERNPT Задает кисть шаблона, определенную спецификацией DIB. Если elpBrushStyle BS_DIBPATTERNPT, член elpHatch содержит указатель на упакованный DIB. Дополнительные сведения см. в разделе обсуждение в elpHatch.
BS_HATCHED Указывает штриховку кисти.
BS_HOLLOW Задает полую или null-кисть.
BS_PATTERN Задает кисть шаблона, определенную растровым изображением памяти.
BS_SOLID Указывает сплошную кисть.

elpColor

Если значение elpBrushStyle BS_SOLID или BS_HATCHED, elpColor указывает цвет, в котором будет нарисовано перо. Для BS_HATCHED функции SetBkMode и SetBkColor определяют цвет фона.

Если параметр elpBrushStyle BS_HOLLOW или BS_PATTERN, elpColor игнорируется.

Если elpBrushStyle имеет BS_DIBPATTERN или BS_DIBPATTERNPT, слово низкого порядка elpColor указывает, содержит ли член bmiColors структуры BITMAPINFO явные значения RGB или индексы в реализованной в настоящее время логической палитре. Значение elpColor должно быть одним из следующих.

Значение Значение
DIB_PAL_COLORS Таблица цветов состоит из массива 16-разрядных индексов в реализованной в настоящее время логической палитре.
DIB_RGB_COLORS Таблица цветов содержит литеральные значения RGB.
 

Макрос RGB используется для создания структуры COLORREF.

elpHatch

Если elpBrushStyle BS_PATTERN, elpHatch — это дескриптор растрового изображения, который определяет шаблон.

Если значение elpBrushStyle BS_SOLID или BS_HOLLOW, elpHatch игнорируется.

Если elpBrushStyle BS_DIBPATTERN, член elpHatch является дескриптором упакованного DIB. Чтобы получить этот дескриптор, приложение вызывает функцию GlobalAlloc с GMEM_MOVEABLE (или LocalAlloc с LMEM_MOVEABLE) для выделения блока памяти, а затем заполняет память упакованным DIB. Упакованный DIB состоит из структуры BITMAPINFO , за которой сразу же следует массив байтов, определяющий пиксели растрового изображения.

Если elpBrushStyle BS_DIBPATTERNPT, член elpHatch является указателем на упакованный DIB. Указатель является производным от блока памяти, созданного LocalAlloc с LMEM_FIXED set или GlobalAlloc с GMEM_FIXED набором, или это указатель, возвращаемый вызовом LocalLock (handle_to_the_dib). Упакованный DIB состоит из структуры BITMAPINFO , за которой сразу же следует массив байтов, определяющий пиксели растрового изображения.

Если elpBrushStyle BS_HATCHED, член elpHatch задает ориентацию линий, используемых для создания люка. Может быть одним из указанных далее.

Значение Значение
HS_BDIAGONAL Люк на 45 градусов вверх (слева направо)
HS_CROSS Горизонтальное и вертикальное перекрестие
HS_DIAGCROSS 45-градусный перекрестие
HS_FDIAGONAL Люк вниз на 45 градусов (слева направо)
HS_HORIZONTAL Горизонтальный люк
HS_VERTICAL Вертикальный люк

elpNumEntries

Количество записей в массиве стилей в элементе elpStyleEntry . Это значение равно нулю, если elpPenStyle не указывает PS_USERSTYLE.

elpStyleEntry[1]

Предоставленный пользователем массив стилей. Массив задается с конечной длиной, но используется так, как если бы он повторялся бесконечно. Первая запись в массиве указывает длину первого дефиса. Вторая запись указывает длину первого разрыва. После этого длины дефисов и разрывов чередуются.

Если elpWidth указывает геометрические линии, длина будет в логических единицах. В противном случае линии являются косметическими, а длина — в единицах устройства.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть wingdi.h (включая Windows.h)

См. также раздел

BITMAPINFO

COLORREF

ExtCreatePen

GetObject

Структуры пера

Обзор перьев

RGB

SetBkColor

SetBkMode