CurveStyleParam - Структура параметров стиля кривой
struct
api7
struct
api7
structcurvestyleparam
structcurvestyleparam.html
*Структуры параметров и константы > Структуры параметров графических объектов *
CurveStyleParam - Структура параметров стиля кривой
Пример...
Аналог данных параметров при использовании Automation - интерфейс ksCurveStyleParam.
char
name[TEXT_LENGTH]
имя стиля,
unsigned long
color
цвет,
double
paperWidth
толщина линии на бумаге ("толщина пера"),
unsigned char
screenWidth
толщина линии на экране (в пикселах),
unsigned char
curveType
набор полей, определяющих тип кривой (0 - сплошная, 1 - прерывистая 2 - прерывистая, содержащая картинки),
reference
pattern
для прерывистой кривой - динамический массив параметров участков штриховой кривой,
unsigned char
even
для прерывистой кривой: 1 - кривая всегда оканчивается штрихами 0 - кривая оканчивается "как получится".
Структура параметров CurvePattern...
Структура параметров CurvePatternEx...
Параметры пера пользовательского стиля линии...
Примечания:
В качестве параметра pattern для прерывистой кривой используется динамический массив CURVE_STYLE, содержащий структуры параметров участков CurvePattern, а для прерывистой кривой, содержащей картинки, - динамический массив CURVE_STYLE_EX со структурами CurvePatternEx.
Параметр curveType представляет собой набор полей, задающих тип кривой и толщину пера при отрисовке этой кривой.
Например, если curveType = 1|LIKE_BASIC_LINE, то линия прерывистая с параметрами пера, как у системной основной линии.
При использовании Unicode следует использовать структуру параметров CurveStyleParamW.
Пример использования структуры параметров CurveStyleParam
CurveStyleParam par; //структура параметров стиля кривой
memset (&par, 0, sizeof (par));
CurvePattern cPatt; //структура параметров участка штриховой кривой
par.pattern = CreateArray (CURVE_PATTERN_ARR, 0);
cPatt.visibleSeg = 15;
cPatt.invisibleSeg = 7;
AddArrayItem (par.pattern, -1, &cPatt, sizeof (cPatt));
cPatt.visibleSeg = 3;
cPatt.invisibleSeg = 7;
AddArrayItem (par.pattern, -1, &cPatt, sizeof (cPatt));
strcpy (par.name, "style from library"); //имя стиля
par.color = RGB (255, 0, 0); //цвет линии
par.paperWidth = 0.8; //толщина пера на бумаге
par.screenWidth = 3; //толщина линии на экране
par.curveType = 1|LIKE_BASIC_LINE; //прерывистая линия с параметрами пера
//как у системной основной линии
par.even = 1; //кривая всегда оканчивается штрихом
UINT tl = AddStyle (CURVE_STYLE, &par, sizeof (par), 0);
LineSeg (20, 20, 70, 20, tl);
int t = GetStyleParam (CURVE_STYLE, tl, &par, sizeof (par));
if (t) {
char buf[128];
sprintf (buf, "curveType = %s",
par.curveType & LIKE_BASIC_LINE ? "LIKE_BASIC_LINE" : "NO");
Message (buf);
}
else
Error("Ошибка");