如何在wxwidget C ++中向textctrl添加搜索功能

时间:2019-02-20 15:16:16

标签: c++ wxwidgets

如何在wxwidget c ++中向wxtextctrl添加搜索功能?

我要添加的搜索栏可以搜索wxtextctrl中的单词。如果使用搜索栏找到了一个单词,则搜索到的单词将突出显示。

1 个答案:

答案 0 :(得分:1)

我已经使用wxWidgets实现了搜索和突出显示机制,但是它使用的是wxStyledTextCtrl,而不是wxTextCtrl(因此,我知道这并不是您要查找的确切答案)。

如果您可以将wxTextCtrl更改为wxStyledTextCtrl,则可以执行Next和Previous函数,如下所示:

下一步:

//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