【问题标题】:Event when cursor changes position wxWidgets Text Box?光标改变位置wxWidgets文本框时的事件?
【发布时间】:2010-09-07 02:37:03
【问题描述】:

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

【问题讨论】:

    标签: c++ wxwidgets wxtextctrl


    【解决方案1】:

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

    我认为您感兴趣的是 EVT_MOTION(func)。但是,我从未使用过此事件,因此我无法确定它是仅在它绑定到的窗口内的鼠标移动(这将是更有趣的方法)或全局鼠标移动时引发。

    【讨论】:

      【解决方案2】:

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

      我现在能想到的便携式捕获所有插入点更改的最佳解决方案是使用计时器连续轮询插入点位置。如果您在多个位置需要此功能,您可以使用内置的此功能派生您自己的 wxTextCtrl,该功能会生成您自己的自定义事件。

      我个人的建议是为您的问题寻找一种不需要始终知道插入点位置的替代解决方案。您确定您确实需要知道插入点的位置,而不仅仅是文本控件中的值发生变化的时间吗?

      【讨论】:

        猜你喜欢
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多