CPen( ); CPen( int nPenStyle, int nWidth, COLORREF crColor ); throw( CResourceException ); CPen( int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nStyleCount = 0, const DWORD* lpStyle = NULL ); throw( CResourceException );
Параметры
nPenStyle
Определяет перьевой стиль. Этот параметр в первой версии конструктора может быть одно из следующих значений:
Вторая версия CPen конструктора определяет комбинацию типа, стиля, конца и начала, и атрибутов объединения. Значения из каждой категории должны быть объединены, используя поразрядный или (OR) оператор (|). Перьевой тип может быть одно из следующих значений:
Вторая версия CPen конструктора добавляет следующие перьевые стили для nPenStyle:
Конец и начало может быть одно из следующих значений:
Объединение может быть одно из следующих значений:
nWidth
Определяет ширину пера.
Для первой версии конструктора, если это значение - 0, ширина в модулях устройства - всегда 1 пиксель, независимо от режима отображения.
Для второй версия конструктора, если 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
Указатель на массив значений двойного слова. Первое значение определяет длину первой черточки в определяемом пользователем стиле, второй, значение определяет длину первого пробела, и так далее. Этот указатель должен быть NULLnPenStyle - не PS_USERSTYLE.
Замечания
Если Вы используете конструктор без параметров, Вы должны инициализировать возникающий в результате объект CPen с CreatePen, CreatePenIndirect, или CreateStockObject функциями. Если Вы используете конструктор, который берет параметры, то никакая дальнейшая инициализация не требуется. Конструктор с параметрами может бросать исключительную ситуацию, если с ошибками сталкиваются, в то время как конструктор без параметров будет всегда преуспевать.