如何在wxwidget c ++中向wxtextctrl添加搜索功能?
我要添加的搜索栏可以搜索wxtextctrl中的单词。如果使用搜索栏找到了一个单词,则搜索到的单词将突出显示。
答案 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