Добрый день.
Подскажите пожалуйста, можно ли как-то изменить параметры шрифта у текстового объекта?
Объект создается на пользовательской карте следующим образом:
[CODE]HOBJ hObj = mapCreateSiteObject(m_baseMapHandler, m_userMapHandler, IDDOUBLE2, 1);
res = (mapRegisterDrawObject(hObj, 0, LOCAL_TITLE) != 0);
IMGTRUETEXT trueTextParam;
const QFont textFont = textParams->font();
memset(&trueTextParam, 0, sizeof(IMGTRUETEXT));
UnicodeToString(textFont.family().utf16(), trueTextParam.FontName, sizeof(trueTextParam.FontName));
IMGTEXT &textParm = trueTextParam.Text;
{
const QColor textColor = textParams->textColor();
textParm.Color = RGB(textColor.red(), textColor.green(), textColor.blue());
}
{
const QColor bgColor = textParams->backgroundColor();
if (bgColor == Qt::transparent)
textParm.BkgndColor = IMGC_TRANSPARENT;
else
textParm.BkgndColor = RGB(bgColor.red(), bgColor.green(), bgColor.blue());
}
textParm.ShadowColor = IMGC_TRANSPARENT;//RGB(255, 255, 255);
textParm.Height = 4000;
textParm.Weight = FW_NORMAL;
textParm.Outline = 0;
textParm.Align = FA_MIDDLE;
textParm.Service = 0;
textParm.Wide = UNIW_NORMAL;
textParm.Horizontal = textParams->isHorizontal() ? 1 : 0;
textParm.Italic = textFont.italic() ? 1 : 0;
textParm.Underline = textFont.underline() ? 1 : 0;
textParm.StrikeOut = textFont.strikeOut() ? 1 : 0;
textParm.Type = 0;
textParm.CharSet = RUSSIAN_CHARSET;
if (textParams->isStretched()) {
textParm.Flag = IMGTEXT_SCALE;
// mapSetObjectScale(hObj, 1);
}
char textChar [2048];
UnicodeToString(textParams->text().utf16(), textChar, sizeof(textChar));
// так не работает на сертифицированной версии на астре
// mapPutTextUnicode(hObj, PanoramaUtils::ushortToWChar(params->titile().utf16()), 0);
mapPutText(hObj, textChar, 0);
mapPutTextVerticalAlign(hObj, qtAlignmentToPanoramaVertical(textParams->textAlignment()), -1);
mapPutTextHorizontalAlign(hObj, qtAlignmentToPanoramaHorizontal(textParams->textAlignment()), -1);
// mapAppendDraw(hObj, IMG_TEXT, reinterpret_cast<const char *>(&textParm));
mapAppendDraw(hObj, IMG_TRUETEXT, reinterpret_cast<const char *>(&trueTextParam));
// ниже идет установка метрики
[/CODE]
Интересует вопрос, как например, изменить такие параметры этого созданного текстового объекта как: цвет текста, высоту шрифта, подчеркивание и т.п.?
Как изменить сам текст и выравнивание текста понятно, а вот с остальным - нет.
Заранее спасибо.
Подскажите пожалуйста, можно ли как-то изменить параметры шрифта у текстового объекта?
Объект создается на пользовательской карте следующим образом:
[CODE]HOBJ hObj = mapCreateSiteObject(m_baseMapHandler, m_userMapHandler, IDDOUBLE2, 1);
res = (mapRegisterDrawObject(hObj, 0, LOCAL_TITLE) != 0);
IMGTRUETEXT trueTextParam;
const QFont textFont = textParams->font();
memset(&trueTextParam, 0, sizeof(IMGTRUETEXT));
UnicodeToString(textFont.family().utf16(), trueTextParam.FontName, sizeof(trueTextParam.FontName));
IMGTEXT &textParm = trueTextParam.Text;
{
const QColor textColor = textParams->textColor();
textParm.Color = RGB(textColor.red(), textColor.green(), textColor.blue());
}
{
const QColor bgColor = textParams->backgroundColor();
if (bgColor == Qt::transparent)
textParm.BkgndColor = IMGC_TRANSPARENT;
else
textParm.BkgndColor = RGB(bgColor.red(), bgColor.green(), bgColor.blue());
}
textParm.ShadowColor = IMGC_TRANSPARENT;//RGB(255, 255, 255);
textParm.Height = 4000;
textParm.Weight = FW_NORMAL;
textParm.Outline = 0;
textParm.Align = FA_MIDDLE;
textParm.Service = 0;
textParm.Wide = UNIW_NORMAL;
textParm.Horizontal = textParams->isHorizontal() ? 1 : 0;
textParm.Italic = textFont.italic() ? 1 : 0;
textParm.Underline = textFont.underline() ? 1 : 0;
textParm.StrikeOut = textFont.strikeOut() ? 1 : 0;
textParm.Type = 0;
textParm.CharSet = RUSSIAN_CHARSET;
if (textParams->isStretched()) {
textParm.Flag = IMGTEXT_SCALE;
// mapSetObjectScale(hObj, 1);
}
char textChar [2048];
UnicodeToString(textParams->text().utf16(), textChar, sizeof(textChar));
// так не работает на сертифицированной версии на астре
// mapPutTextUnicode(hObj, PanoramaUtils::ushortToWChar(params->titile().utf16()), 0);
mapPutText(hObj, textChar, 0);
mapPutTextVerticalAlign(hObj, qtAlignmentToPanoramaVertical(textParams->textAlignment()), -1);
mapPutTextHorizontalAlign(hObj, qtAlignmentToPanoramaHorizontal(textParams->textAlignment()), -1);
// mapAppendDraw(hObj, IMG_TEXT, reinterpret_cast<const char *>(&textParm));
mapAppendDraw(hObj, IMG_TRUETEXT, reinterpret_cast<const char *>(&trueTextParam));
// ниже идет установка метрики
[/CODE]
Интересует вопрос, как например, изменить такие параметры этого созданного текстового объекта как: цвет текста, высоту шрифта, подчеркивание и т.п.?
Как изменить сам текст и выравнивание текста понятно, а вот с остальным - нет.
Заранее спасибо.