如何在 wxwidget C++ 中将搜索功能添加到 textctrl
how to add search feature to textctrl in wxwidget c++
如何在 wxwidget c++ 中为 wxtextctrl 添加搜索功能?
我想要的是添加一个可以在wxtextctrl中搜索单词的搜索栏。如果使用搜索栏找到了一个词,则搜索到的词将突出显示。
我已经使用 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
}
之前的完全一样,除了你用 SearchPrev
替换 SearchNext
int findpos = editor->SearchPrev(flags, find_string);
显然,如果您需要使用 wxTextCtrl,另一种方法是手动搜索字符串并直接使用 wxTextCtrl::SetSelection 设置选择。 wxForum 上的 post 可能对此有所帮助:https://forums.wxwidgets.org/viewtopic.php?t=15917
如何在 wxwidget c++ 中为 wxtextctrl 添加搜索功能?
我想要的是添加一个可以在wxtextctrl中搜索单词的搜索栏。如果使用搜索栏找到了一个词,则搜索到的词将突出显示。
我已经使用 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
}
之前的完全一样,除了你用 SearchPrev
SearchNext
int findpos = editor->SearchPrev(flags, find_string);
显然,如果您需要使用 wxTextCtrl,另一种方法是手动搜索字符串并直接使用 wxTextCtrl::SetSelection 设置选择。 wxForum 上的 post 可能对此有所帮助:https://forums.wxwidgets.org/viewtopic.php?t=15917