在wxWidgets中,如何在wxTextCtrl中检测光标位置何时发生变化?我查看了手册,找不到与之相关的任何事件,但也许还有另外一种我错过的方式。
答案 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,如果您需要在多个位置使用此功能,则会生成您自己的自定义事件。
我个人的建议是为您的问题寻找替代解决方案,无需始终知道插入点位置。您确定您确实需要知道插入点位置,而不仅仅是文本控件中的值何时更改?