Events wxWidgets:检测自定义控件上的单击事件
如何将单击事件侦听器添加到使用wxWidgets创建的自定义控件?自定义控件使用wxWindow作为基础。在我看到的事件列表上Events wxWidgets:检测自定义控件上的单击事件,events,mouse,click,wxwidgets,Events,Mouse,Click,Wxwidgets,如何将单击事件侦听器添加到使用wxWidgets创建的自定义控件?自定义控件使用wxWindow作为基础。在我看到的事件列表上 wxEVT_LEFT_DOWN wxEVT_LEFT_UP wxEVT_LEFT_DCLICK wxEVT_MIDDLE_DOWN wxEVT_MIDDLE_UP wxEVT_MIDDLE_DCLICK wxEVT_RIGHT_DOWN wxEVT_RIGHT_UP wxEVT_RIGHT_DCLICK wxEVT_MOTION wxEVT_ENTER_WIND
wxEVT_LEFT_DOWN
wxEVT_LEFT_UP
wxEVT_LEFT_DCLICK
wxEVT_MIDDLE_DOWN
wxEVT_MIDDLE_UP
wxEVT_MIDDLE_DCLICK
wxEVT_RIGHT_DOWN
wxEVT_RIGHT_UP
wxEVT_RIGHT_DCLICK
wxEVT_MOTION
wxEVT_ENTER_WINDOW
wxEVT_LEAVE_WINDOW
wxEVT_MOUSEWHEEL
但是没有wxEVT\u左键单击
或类似功能 通常,不存在“点击”事件(在-
).点击的动作分为两部分:鼠标向下和鼠标向上。通常,您认为的“左键单击”事件实际上是在“左上”事件中处理的
试一试:
- 将鼠标悬停在按钮上(如本页的“添加注释”按钮)
- 单击鼠标左键并按住
- 按住同时将鼠标从按钮上移开
- 松开鼠标左键
- 什么也没发生李>
- 将鼠标悬停在同一按钮上
- 点击 按住鼠标左键
- 松开鼠标左键
- 您期望的“单击”操作由up事件触发李>
发布后,我已经阅读了Burly的答案,我同意他的观点,wxWidgets提供了最低级别的事件,让您能够最大程度地控制为用户构建的用户界面。是的,这就是使用左下键而不是单击的问题。通常,用户可以在按住鼠标按钮后,通过将指针移到对象外部来取消单击。在这里,我需要通过检测left-down和left-up来准确地检测点击?多麻烦啊:(我认为,如果你正在编写控件,你需要准备好管理用户鼠标交互的所有细节。从这个角度来看,wxWidget系列鼠标事件是有意义的。感谢你建议使用wxControl。我对wxWidgets是新手,所以我不知道继承哪个控件。左下事件与单击不同,用户c在释放鼠标按钮之前,不要让指针位于控件之外来取消单击。