Шаг 890 - CPen::CreatePen

BOOL CreatePen( int nPenStyle, int nWidth, COLORREF crColor );
BOOL CreatePen( int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush,
	int nStyleCount = 0, const DWORD* lpStyle = NULL );

Возвращаемое значение
Отлично от нуля, или дескриптор логического пера, если успешно, иначе 0.

Параметры
nPenStyle
Определяет стиль для пера. Для списка возможных значений, см. nPenStyle параметр в CPen конструкторе.
nWidth
Определяет ширину пера.
Для первой версии CreatePen, если это значение - 0, ширина в модулях устройства - всегда 1 пиксель, независимо от режима отображения.
Для второй версия CreatePen, если nPenStyle - PS_GEOMETRIC, ширина, дана в логических модулях. Если nPenStyle - PS_COSMETIC, ширина должна быть установлена к 1.
crColor
Содержит RGB цвет для пера.
pLogBrush
Указатель на структуру LOGBRUSH. Если nPenStyle - PS_COSMETIC, lbColor член структуры LOGBRUSH определяет цвет пера, и lbStyle член структуры LOGBRUSH должен быть установлен к BS_SOLID. Если nPenStyle - PS_GEOMETRIC, все элементы должны использоваться, чтобы определить атрибуты кисти пера.
nStyleCount
Определяет длину, в модулях двойного слова, lpStyle массива. Это значение должно быть нуль, если nPenStyle - не PS_USERSTYLE.
lpStyle
Указатель на массив значений двойного слова. Первое значение определяет длину первой черточки в определяемом пользователем стиле, второй, значение определяет длину первого пробела, и так далее. Этот указатель должен быть NULL, если nPenStyle - не PS_USERSTYLE.

Замечания
Первая версия CreatePen инициализирует перо с определенным стилем, шириной, и цветом. Перо может быть впоследствии выбрано как текущее перо для любого контекста устройства.
Перья, которые имеют ширину большей чем 1 пиксель, должны всегда иметь или PS_NULL, PS_SOLID, или PS_INSIDEFRAME стиль.
Если перо имеет PS_INSIDEFRAME стиль и цвет, который не соответствует цвету в логической таблице цветов, перо выведено с приближенным цветом. PS_SOLID перьевой стиль не может использоваться, чтобы создать перо с близким цветом. Стиль PS_INSIDEFRAME идентичен PS_SOLID, если перьевая ширина - меньше чем или равная 1.
Вторая версия CreatePen инициализирует логическое косметическое или геометрическое перо, которое имеет определенный стиль, ширину, и атрибуты кисти. Ширина косметического пера всегда 1, ширина геометрического пера всегда определяется в модулях. После того, как прикладная программа создает логическое перо, она может выбирать то перо в контекст устройства, вызывая CDC::SelectObject. После того, как перо выбрано в контекст устройства, оно может использоваться, чтобы вывести линии и кривые.
Если nPenStyle - PS_COSMETIC и PS_USERSTYLE, входы в lpStyle массиве определяют, что длины черточки и пробела в модулях стиля. Модуль стиля определен устройством, в котором перо используется, чтобы вывести строку.
Если nPenStyle - PS_GEOMETRIC и PS_USERSTYLE, входы в lpStyle массиве определяют, что длины черточки и пробела в логических модулях.
Если nPenStyle - PS_ALTERNATE, модуль стиля игнорируется, и каждый другой пиксель установлен.
Когда прикладная программа больше не требует данного пера, она должно назвать CGdiObject::DeleteObject функцию или уничтожать объект CPen, так что ресурс - больше не используется. Прикладная программа не должна удалить перо, когда перо выбрано в контексте устройства.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.02.2002