AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт

Автор Тема: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт  (Прочитано 15737 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Код - C++ [Выбрать]
  1. AcEdInputPointFilterResult::setNewTooltipString(L"Как включить/выключить вывод BOLD шрифта?")

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #2 : 18-05-2020, 15:57:00 »
Вставка тэгов <Bold> & </Bold> не работает
Код - C++ [Выбрать]
  1. output.setNewTooltipString(_T("<Bold>BOLD</Bold>"));



Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #3 : 18-05-2020, 16:15:07 »
Вставка тэгов <Bold> & </Bold> не работает
Код - C++ [Выбрать]
  1. output.setNewTooltipString(_T("<Bold>BOLD</Bold>"));
Значит увы. Других способов в ObjectARX нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #5 : 18-05-2020, 16:25:59 »
А у меня работает:


Код - C++ [Выбрать]
  1. Acad::ErrorStatus ToolTipsFilter::processInputPoint(const AcEdInputPoint& input,
  2.   AcEdInputPointFilterResult& output) {
  3.  
  4.   if (input.pickedEntities().length() > 0) {
  5.     output.setNewTooltipString(
  6.       L"Iam]]><LineBreak/>"
  7.       L"<Bold>BOLD</Bold><LineBreak/>"
  8.       L"<![CDATA[Iam]]><LineBreak/>"
  9.       L"<Italic>Italic</Italic><LineBreak/>"
  10.       L"<![CDATA[Iam Normal"
  11.       );
  12.   }
  13.   else output.setNewTooltipString(L"");
  14.   return (Acad::eOk);
  15. }
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #6 : 18-05-2020, 16:37:42 »
Формальное копирование строки из ссылки https://adndevblog.typepad.com/autocad/2013/03/formatting-in-rollover-tip.html приводит к ошибке компиляции

Код - C++ [Выбрать]
  1. output.setNewTooltipString(ACRX_T("Iam]]>
  2.  
  3.                     <LineBreak / >
  4.  
  5.                     <Bold>BOLD< / Bold>
  6.  
  7.                     <LineBreak / >
  8.  
  9.                     <![CDATA[Iam]]>
  10.  
  11.                     <LineBreak / >
  12.  
  13.                     <Italic>Italic< / Italic>
  14.  
  15.                     <LineBreak / >
  16.  
  17.                     < ![CDATA[Iam Normal"
  18.  
  19.                   ));

1>------ Build started: Project: Table, Configuration: Debug x64 ------
1>  mFilter.cpp
1>mFilter.cpp(66): error C2001: newline in constant
1>mFilter.cpp(82): error C2001: newline in constant
1>mFilter.cpp(84): error C2065: 'LineBreak': undeclared identifier
1>mFilter.cpp(84): error C2059: syntax error: '>'
1>mFilter.cpp(84): error C2143: syntax error: missing ')' before ';'

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #7 : 18-05-2020, 16:38:35 »
А как ж это?
Ну ты же понимаешь, что не всё что есть в самом AutoCAD доступно через его публичное API...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #8 : 18-05-2020, 16:40:04 »
Формальное копирование строки из ссылки https://adndevblog.typepad.com/autocad/2013/03/formatting-in-rollover-tip.html приводит к ошибке компиляции
Исправь, чтобы не приводило к ошибке компиляции - это сам сайт рвёт и корежит строки с <>...
Выше я уже привёл исправленный код.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #9 : 18-05-2020, 16:45:22 »
Мда... Как ни странно эта абракадабра действительно работает:
Код - C++ [Выбрать]
  1.                   output.setNewTooltipString(
  2.                      L"Iam]]><LineBreak/>"
  3.                      L"<Bold>BOLD</Bold><LineBreak/>"
  4.                      L"<![CDATA[Iam]]><LineBreak/>"
  5.                      L"<Italic>Italic</Italic><LineBreak/>"
  6.                      L"<![CDATA[Iam Normal"
  7.                   );
  8.  

Осталось взять бубен и отбросить лишнее ))

Отмечено как Решение Sergey_K 18-05-2020, 17:16:21

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #10 : 18-05-2020, 16:54:46 »
эта абракадабра
Эта абракадабра - XML. Если ты передаёшь в метод setNewTooltipString строку, к ней в начало добавляется самим AutoCAD'ом "<![CDATA[", а в конец "]]>" и соответственно все теги типа <Bold> <Italic> и т.д. внутри этой строки игнорируются. А вот если начать со строки "твоя строка]]>", а дальше управляющие теги, то они все работают.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #11 : 18-05-2020, 17:10:49 »
Вот наверное более доступный для понимания вариант:




Код - C++ [Выбрать]
  1. Acad::ErrorStatus ToolTipsFilter::processInputPoint(const AcEdInputPoint& input,
  2.   AcEdInputPointFilterResult& output) {
  3.  
  4.   if (input.pickedEntities().length() > 0) {
  5.     output.setNewTooltipString(
  6.       L"]]>Sample text with <Bold>bold</Bold>, <Italic>italic</Italic> and <Underline>underlined</Underline> words.<LineBreak/>"
  7.       L"<![CDATA["
  8.       );
  9.   }
  10.   else output.setNewTooltipString(L"");
  11.   return (Acad::eOk);
  12. }
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #12 : 18-05-2020, 17:16:03 »
Александр Ривилис,  прояснил. Спасибо!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #13 : 18-05-2020, 17:24:19 »
Sergey_K,
Есть важный момент, что с вертикальными продуктами на базе AutoCAD (AA, MEP, Civil 3D) это может не работать, так как они сами пристегивают свои tooltip'сы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Sergey_KАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 2
Re: AcEdInputPointFilterResult::setNewTooltipString BOLD шрифт
« Ответ #14 : 20-05-2020, 14:48:39 »
При установке переменной ROLLOVERTIPS в 0 толтипы превращаются в бледную тень.

Лечится ли это средствами ObjectARX ?