Задача: контрол похожий на wxTreeCtrl либо wxListBox с возможностью форматированого текста (разного цвета).
Пример:
Вопрос: можно "скрестить" уже существующие контролы (wxRichText и wxListBox) или прийдется дописывать wxRichText?
Интересуют готовые решения либо советы по поводу улучшения wxRichText (его альтернативы если есть) т.к. если верить этому http://docs.wxwidgets.org/trunk/classwx ... _graph.png то перед текстБоксом есть множество его родителей и, что то мне подсказывает, что финальный wxTextBox мне не нужен, а нужно "допиливать" одного из его родителей.
*мысли в слух* может не стоит с этим парится и написать с нуля контрол, используя контекст устройства?
Цветной текст в контролах Topic is solved
Цветной текст в контролах
win7x64, codeblocks 12.11, MinGW 5.1.4, wxWidgets 2.8.12
- T-Rex
- Moderator
- Posts: 1248
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: Цветной текст в контролах
По листбоксу - можно wxSimpleHtmlListBox.
По три конролу - вряд ли. Там только цвет для итема целиком. Разве что нативным способом для каждой платформы.
Как-то делали кастомный три контрол где поверх каждого итема рисовался кастомный контрол. Это криво, конечно, но если сильно хочется, можно owner-drawn какой-то статик текст придумать и его поверх итемов показвать.
По три конролу - вряд ли. Там только цвет для итема целиком. Разве что нативным способом для каждой платформы.
Как-то делали кастомный три контрол где поверх каждого итема рисовался кастомный контрол. Это криво, конечно, но если сильно хочется, можно owner-drawn какой-то статик текст придумать и его поверх итемов показвать.
Re: Цветной текст в контролах
Спасибо за подсказку. Решил использовать wxHtmlListBox т.к. написанно, что wxSimpleHtmlListBox медленный, а мне нужно отображать большие объемы данных.
Т.к. "This is still an abstract base class and you will need to derive your own class from it" попытался создать класс наследник от wxHtmlListBox, также сказано "you will only need to override a single wxHtmlListBox::OnGetItem function"
Сам класс:
Переменные в классе главной формы:
"Заполнение" переменных:
Создание контрола, строчка лежит в конструкторе главной формы.
Все компилируется, но программа падает в рантайме с ошибкой "Process terminated with status -1073741819 (0 minutes, 1 seconds)"
ЗЫ существена ли разница в скорости wxHtmlListBox и wxSimpleHtmlListBox?
Т.к. "This is still an abstract base class and you will need to derive your own class from it" попытался создать класс наследник от wxHtmlListBox, также сказано "you will only need to override a single wxHtmlListBox::OnGetItem function"
Сам класс:
Code: Select all
class myHtmlListBox: public wxHtmlListBox
{
virtual wxString myHtmlListBox::OnGetItem(size_t n)const
{
return _T("lalala");
}
};
Code: Select all
myHtmlListBox* HtmlListBox1;
static const long ID_HTMLLISTBOX1;
Code: Select all
const long AkeyFrame::ID_HTMLLISTBOX1 = wxNewId();
Code: Select all
HtmlListBox1->Create(this, ID_HTMLLISTBOX1, wxDefaultPosition, wxDefaultSize, 0, _T("ID_HTMLLISTBOX1"));
ЗЫ существена ли разница в скорости wxHtmlListBox и wxSimpleHtmlListBox?
win7x64, codeblocks 12.11, MinGW 5.1.4, wxWidgets 2.8.12
- T-Rex
- Moderator
- Posts: 1248
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: Цветной текст в контролах
Существенна. Виртуальный режим у обычного быстрее ж. В примерах вроде есть, можно там посмотреть и разобраться почему валится