Структура 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) |