Функция CreatePen

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

Синтаксис

HPEN CreatePen(
  int fnPenStyle,    // стиль пера
  int nWidth,        // ширина пера
  COLORREF crColor   // цвет пера
);

Параметры

fnPenStyle
[in] Определяет стиль пера. Он может состоять из любого одного значения ниже.

 

Значение Предназначение
PS_SOLID Перо является сплошным.
PS_DASH Перо является штриховым. Этот стиль допустим только тогда, когда толщина пера равняется единице или меньше ее, в единицах измерения устройства (пикселях).
PS_DOT Перо является пунктирным. Этот стиль допустим только тогда, когда толщина пера равняется единице или меньше ее, в единицах измерения устройства (пикселях).
PS_DASHDOT Перо имеет чередующиеся штрихи и точки. Этот стиль допустим только тогда, когда толщина пера равняется единице или меньше ее, в единицах измерения устройства (пикселях).
PS_DASHDOTDOT Перо имеет чередующиеся штрихи и двойные точки. Этот стиль допустим только тогда, когда толщина пера равняется единице или меньше ее, в единицах измерения устройства (пикселях).
PS_NULL Перо невидимо.
PS_INSIDEFRAME Перо является сплошным. Когда это перо используется в какой-либо рисующей функции GDI, которая забирает прямоугольник ограничения, размеры фигуры сжимаются так, чтобы она вместилась полностью в прямоугольнике ограничения, принимая во внимание толщину пера. Это применяется только к геометрическим перьям.
 

nWidth

[in] Определяет толщину пера, в логических  единицах измерения. Если nWidth равняется нулю, перо появляется  шириной в один пиксель, независимо от текущих преобразований.

Функция CreatePen возвращает перо с заданной  толщиной в битах со стилем PS_SOLID, если Вы устанавливаете толщину больше, чем один пиксель для ниже перечисленных стилей: PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT.

Примечание переводчика: Хотя в MSDN утверждается, что косметические перья обладают произвольной шириной, задаваемой в системе координат устройства, единственным допустимым значением параметра dwWidth, все таки, является 1; при любых других значениях вызов функции завершается неудачей.

crColor

[in] Определяет опорный уровень цвета для цвета пера. Чтобы создать структуру COLORREF, используйте макрос RGB.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - дескриптор, который идентифицирует логическое перо.

Если функция завершается ошибкой, возвращаемое значение - ПУСТО (NULL).

Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.

Замечания

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

Если значение, заданное параметром nWidth равняется нулю, линия, рисуемая созданным пером, всегда равняется толщине в один пиксель, независимо от текущего преобразования.

Если значение, заданное nWidth больше чем 1,  то параметром fnPenStyle должно быть PS_NULL, PS_SOLID или PS_INSIDEFRAME.

Если значение, заданное nWidth больше чем 1, а fnPenStyle - PS_INSIDEFRAME, то линия, связанная с пером рисуется в рамке всех примитивов исключая многоугольники и ломаные линии.

Если значение, заданное nWidth больше чем 1, fnPenStyle - PS_INSIDEFRAME, а цвет, определенный параметром crColor, не соответствует ни одной из записей в логической палитре, система рисует линии, используя размытый цвет. Размытые цвета не доступны сплошным перьям.

Когда Вы больше не нуждаетесь в пере, вызовите функцию DeleteObject, чтобы удалить его.

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

Код примера

Пример, см. в статье Создание цветных  перьев и кистей.

Смотри также

Обзор Перья, Функции, используемые перьями, CreatePenIndirect, COLORREF, DeleteObject, ExtCreatePen, GetObject, RGB, SelectObject

Размещение и совместимость CreatePen

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Gdi32.lib

Заголовочный файл

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz