当光标改变位置wxWidgets文本框时的事件?

时间:2010-09-07 02:37:03

标签: c++ wxwidgets wxtextctrl

在wxWidgets中,如何在wxTextCtrl中检测光标位置何时发生变化?我查看了手册,找不到与之相关的任何事件,但也许还有另外一种我错过的方式。

2 个答案:

答案 0 :(得分:0)

由于wxTextCtrl继承自wxWindow,因此您可以使用该控件绑定以下鼠标事件: http://docs.wxwidgets.org/2.8/wx_wxmouseevent.html#wxmouseevent

我认为您感兴趣的是EVT_MOTION(func)。但是,我从来没有使用过这个事件,所以我不能肯定地说它是否只是在窗口内的鼠标运动时被绑定到(这将是更有趣的方法)或全局鼠标移动。

答案 1 :(得分:0)

我很确定他的意思是插入点光标,在这种情况下,没有一个wxWidgets事件可以改变它的位置。此外,虽然wxTextCtrl :: SetInsertionPoint()和wxTextCtrl :: SetInsertionPointEnd()是可以被覆盖的虚拟方法,但这只能捕获以编程方式更改的情况,而不是通过各种操作,具体取决于本机平台的参与(这可能是此事件的原因)目前在wxWidgets中不存在。)

我能想到的最好的解决办法是立即捕获所有插入点更改,即使用计时器连续轮询插入点位置。您可以使用内置的此功能派生自己的wxTextCtrl,如果您需要在多个位置使用此功能,则会生成您自己的自定义事件。

我个人的建议是为您的问题寻找替代解决方案,无需始终知道插入点位置。您确定您确实需要知道插入点位置,而不仅仅是文本控件中的值何时更改?