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


CPen::CPen

Создает объект CPen.

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

Параметры

  • nPenStyle
    Задает стиль пера.Этот параметр в первой версии конструктора может принимать одно из следующих значений:

    • PS_SOLID Создает сплошной перо.

    • PS_DASH Создает пунктирная перо.Допустимо, только если ширина пера 1 или в единицах устройства.

    • Создает PS_DOT, предоставляемая точки пера.Допустимо, только если ширина пера 1 или в единицах устройства.

    • PS_DASHDOT Создает перо с чередующихся штрихов и точками.Допустимо, только если ширина пера 1 или в единицах устройства.

    • PS_DASHDOTDOT Создает перо с чередующихся штрихов и двойными точками.Допустимо, только если ширина пера 1 или в единицах устройства.

    • Создает PS_NULL значения null перо.

    • PS_INSIDEFRAME Создает перо, которая рисуется линия в пределах кадра замкнутых фигур, создаваемых функций вывода GDI Windows, которые определяют ограничивающий прямоугольник (например, Эллипс, Прямоугольник, RoundRect, Pie и функции-члены Chord ).Если этот стиль используется с функциями вывода GDI Windows, которая не указывает ограничивающий прямоугольник (например, функция-член LineTo ), область документа пера не ограничена кадром.

    Вторая версия конструктора CPen указывает тип сочетания, стиль, а атрибуты соединения.Значения из каждой категории должны объединяться с помощью оператора (побитовое ИЛИ|).Тип пера может принимать одно из следующих значений:

    • Создает PS_GEOMETRIC геометрическая перо.

    • PS_COSMETIC Создает косметическая перо.

      Вторая версия конструктора CPen добавляет следующие стили пера для nPenStyle:

    • PS_ALTERNATE Создает перо, которая устанавливает каждый другой точке.(Этот стиль применяется только к косметических ручек).

    • PS_USERSTYLE Создает перо, которая используется при вводе в массив предоставленный пользователем.

      Окончание может принимать одно из следующих значений:

    • Завершает PS_ENDCAP_ROUND круглы.

    • Завершает PS_ENDCAP_SQUARE квадрат.

    • Завершает PS_ENDCAP_FLAT в двух направлениях.

      Соединение может быть одно из следующих значений:

    • Соединения PS_JOIN_BEVEL скошены.

    • Соединения PS_JOIN_MITER mitered при их в текущий набор ограничений функцией SetMiterLimit.Если в соединении превышает это ограничение, оно скошено.

    • Соединения PS_JOIN_ROUND круглы.

  • nWidth
    Определяет толщину пера.

    • Для первой версии конструктора, если это значение равно 0, то ширина в единицах устройства всегда 1 пиксель, независимо от режима сопоставления.

    • Для второй версией конструктора, если 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.

Заметки

При использовании конструктора без аргументов, то необходимо инициализировать результирующий объект CPen с CreatePen, CreatePenIndirect или функции-членами CreateStockObject.

При использовании конструктора, который принимает аргументы и не существует больше добавочная инициализация не требуется.Конструктор с аргументами может вызвать исключение при возникновении ошибок во время выполнения конструктор без аргументов, будет всегда выполняется успешно.

Пример

// Create a solid red pen of width 2.
CPen myPen1(PS_SOLID, 2, RGB(255,0,0));

// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
CPen myPen2(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);

Требования

Header: afxwin.h

См. также

Ссылки

Класс CPen

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

CPen::CreatePen

CPen::CreatePenIndirect

CGdiObject::CreateStockObject