CPen::CreatePen
Создает логический косметика или геометрическая перо заданным стилем, шириной и атрибутами кисти и вложение его к объекту CPen.
BOOL CreatePen(
int nPenStyle,
int nWidth,
COLORREF crColor
);
BOOL CreatePen(
int nPenStyle,
int nWidth,
const LOGBRUSH* pLogBrush,
int nStyleCount = 0,
const DWORD* lpStyle = NULL
);
Параметры
nPenStyle
Задает стиль для пера.Список возможных значений см. в описании параметра nPenStyle в конструкторе CPen.nWidth
Определяет толщину пера.Для первой версии CreatePen, если это значение равно 0, то ширина в единицах устройства всегда 1 пиксель, независимо от режима сопоставления.
Для второй версии CreatePen, если nPenStylePS_GEOMETRIC, ширина уступана логические единицы.Если nPenStylePS_COSMETIC, ширину, необходимо установить значение 1.
crColor
Содержит цвета RGB для пера.pLogBrush
Указатель на структуру LOGBRUSH.Если nPenStylePS_COSMETIC, то элемент lbColor структуры LOGBRUSH определяет цвет пера и участника lbStyle структуры LOGBRUSH должны быть определены в BS_SOLID.Если nPenStylePS_GEOMETRIC, то все члены должны использоваться для идентификации атрибутов кисти пера.nStyleCount
Указывает длину в единицах, lpStyle doubleword массива.Это значение должно быть равным нулю, если nPenStyle не PS_USERSTYLE.lpStyle
Указатель на массив значений doubleword.Первое значение задает длину первого штриха в определяемом пользователем стиле, второе значение указывает длину первой пробелы и т дЭтот указатель должен быть 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.После того как перо выделена в контекст устройства, его можно использовать для рисования линии и кривые.
Если nPenStylePS_COSMETIC и PS_USERSTYLE, записи в массиве lpStyle определяют длины штрихов и промежутков в единицах стиля.Блок стиля определяется устройством, в котором перо используется для прорисовки линии.
Если nPenStylePS_GEOMETRIC и PS_USERSTYLE, записи в массиве lpStyle определяют длины штрихов и промежутков в логических единицах.
Если nPenStylePS_ALTERNATE, единицей стиля игнорироватьа и каждый другой точке установлен.
Когда приложение не требует данного пера, оно должно вызвать функцию-член CGdiObject::DeleteObject или уничтожить объект CPen поэтому ресурс больше не используются.Приложение не должно удаляться пера, если перо выделена в контексте устройства.
Пример
CPen myPen1, myPen2;
// Create a solid red pen of width 2.
myPen1.CreatePen(PS_SOLID, 2, RGB(255,0,0));
// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
myPen2.CreatePen(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);
Требования
Header: afxwin.h