Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.19. Графические функции
А.5.19.25. rdsXGSetPenStyle – установить стиль линии
Функция rdsXGSetPenStyle устанавливает текущий стиль линии, если модель блока вызвана для рисования. Этот стиль будет использоваться для всех геометрических фигур, рисуемых после этого вызова.
void RDSCALL rdsXGSetPenStyle( int Mask, // Маска установки (RDS_GF*) или 0 int Style, // Стиль линии (Windows API) int Width, // Толщина линии COLORREF Color, // Цвет линии int Mode // Режим рисования );
Тип указателя на эту функцию
RDS_VIIICrI
Параметры
- Mask (int)
- Маска устанавливаемых параметров или 0, если нужно одновременно установить все параметры. В этом
параметре могут передаваться следующие битовые флаги, объединенные битовым ИЛИ:
RDS_GFCOLOR Установить цвет линии из параметра Color. RDS_GFMODE Установить режим рисования из параметра Mode. RDS_GFSTYLE Установить стиль линии из параметра Style. RDS_GFWIDTH Установить толщину линии из параметра Width. - Style (int)
- Одна из стандартных констант Windows API, задающих стиль линии:
PS_DASH Пунктирная линия. PS_DASHDOT Линия из чередующихся отрезков и точек. PS_DASHDOTDOT Линия из повторяющихся групп «отрезок-точка-точка». PS_DOT Линия, состоящая из точек. PS_INSIDEFRAME Специальный стиль сплошной линии, разрешающий Windows скорректировать размеры геометрической фигуры, ограниченной этой линией так, чтобы она уместилась в заданный прямоугольник. PS_NULL Невидимая линия (геометрические фигуры будут рисоваться без линий на границах). PS_SOLID Сплошная линия. - Width (int)
- Толщина линии в точках экрана. В Windows толщина более одной точки поддерживается только для сплошных линий.
- Color (COLORREF)
- Цвет линии. В стиле линии PS_NULL не используется.
- Mode (int)
- Одна из стандартных констант Windows API, задающих режим рисования линии.
Режим рисования определяет логическую функцию, которая комбинирует биты цвета линии и цвета экрана для
получения результирующего цвета. Если pen – бит цвета стиля линии (из параметра
Color), screen – бит цвета экрана в данной точке, а
res – результирующий (получившийся в результате рисования) цвет, то при помощи параметра
Mode можно задать следующие операции:
Здесь словом NOT обозначена инверсия бита, OR – операция ИЛИ, AND – И, XOR – исключающее ИЛИ. Из всех перечисленных выше режимов чаще всего используются R2_COPYPEN (линия рисуется цветом, заданным в параметрах стиля) и R2_NOT (линия инвертирует точки экрана).
R2_BLACK res = 0 – точка экрана всегда будет черной R2_WHITE res = 1 – точка экрана всегда будет белой R2_NOP res = screen – точка экрана не меняет цвет R2_NOT res = NOT screen – точка экрана инвертируется R2_COPYPEN res = pen – точка экрана принимает цвет линии R2_NOTCOPYPEN res = NOT pen R2_MERGEPENNOT res = ( NOT screen ) OR pen R2_MASKPENNOT res = ( NOT screen ) AND pen R2_MERGENOTPEN res = ( NOT pen ) OR screen R2_MASKNOTPEN res = ( NOT pen ) AND screen R2_MERGEPEN res = pen OR screen R2_NOTMERGEPEN res = NOT ( pen OR screen ) R2_MASKPEN res = pen AND screen R2_NOTMASKPEN res = NOT ( pen AND screen ) R2_XORPEN res = pen XOR screen R2_NOTXORPEN res = NOT ( pen XOR screen )
Примечания
Эта функция устанавливает текущий стиль линии, который будет использоваться при рисовании замкнутых геометрических фигур. В параметре Mask передается набор битовых флагов, определяющих, какие из параметров стиля будут изменены.
Пример
Примеры использования функции rdsXGSetPenStyle приведены в §2.7.3 и §2.10.1 руководства программиста.
См. также