как добавить функцию поиска в textctrl в wxwidget c ++ - PullRequest
0 голосов
/ 20 февраля 2019

как добавить функцию поиска в wxtextctrl в wxwidget c ++?

я хочу добавить панель поиска, которая может искать слова в wxtextctrl.если слово было найдено с помощью панели поиска, искомое слово будет выделено.

1 Ответ

0 голосов
/ 20 февраля 2019

Я реализовал механизм поиска и выделения с помощью wxWidgets, но он использует wxStyledTextCtrl , а не wxTextCtrl (поэтому я знаю, что это не точный ответ для того, что вы ищете).

Если вы могли изменить wxTextCtrl на wxStyledTextCtrl, вы можете выполнить следующую и предыдущую функцию следующим образом:

Далее:

//Sets the current caret position as the start of the search
editor->SearchAnchor();
//flags can be things like wxSTC_FIND_MATCHCASE for case sensitive searching
int findpos = editor->SearchNext(flags, find_string);
if (findpos > 0)
{
    //search does not implicitly ensure your found location is visible
    editor->EnsureCaretVisible();
    //TODO: any other UI response to a valid find
}
else
{
    //TODO: any other UI response to no valid find
}

Предыдущее значениеточно так же, за исключением замены SearchNext на SearchPrev

int findpos = editor->SearchPrev(flags, find_string);

Очевидно, что альтернативой, если вам нужно использовать wxTextCtrl, является ручной поиск в строке и установка выбора непосредственно с помощью wxTextCtrl :: SetSelection.Этот пост на wxForum может помочь с этим: https://forums.wxwidgets.org/viewtopic.php?t=15917

...