Поделиться через


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

См. также

Ссылки

Класс CPen

Диаграмма иерархии

CPen::CreatePenIndirect

CPen::CPen

CGdiObject::DeleteObject

LOGBRUSH