wx.RichTextCtrl - 如何从富文本ctrl框中删除闪烁的光标?

时间:2014-04-18 00:55:56

标签: wxwidgets

我正在使用C ++。一个带有一些句子的简单富文本ctrl框。我使用它是因为我需要滚动。我的问题是文本开头的光标闪烁(如下图所示)

wxwidgets

我在互联网上搜索了这段代码:

http://forums.wxwidgets.org/viewtopic.php?p=96307

在上面的链接中,我找到了文本ctrl的信息,它是这样的:

textctrl->SetFocus();
textctrl->ShowNativeCaret(false);

但我没有找到有关RichTextCtrl框的有用信息

此外,我尝试将光标设置为空白光标,但它对我不起作用

window->SetCursor(wxCursor(wxCURSOR_WAIT));

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

wxTextCtrl::ShowNativeCaret()仅在Windows上实施,只使用原生API ShowCaret()HideCaret()

您可以通过挂钩设置焦点事件轻松复制wxRichTextCtrl

richTextCtrl->Bind(wxEVT_SET_FOCUS, [richTextCtrl](wxFocusEvent&) {
    HideCaret(richTextCtrl->GetHWND());
});

(或者如果您的编译器还不支持C ++ 11 lambdas,请使用成员函数。有关详细信息,请参阅"动态事件处理"章节here。)