Функция CreatePen создает логическое перо, которое имеет заданные стиль, ширину и цвет. Перо может быть впоследствии выбрано в контекст устройства и использовано, чтобы рисовать линии и кривые.
Синтаксис
HPEN CreatePen( int fnPenStyle, // стиль пера int nWidth, // ширина пера COLORREF crColor // цвет пера ); |
Значение | Предназначение |
---|---|
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 |
Нет |
Замечания по платформе |
Не имеется |