查看源码 wxScrollEvent (wx v2.4.3)
滚动事件保存着来自独立的滚动条(参见wxScrollBar
)和滑块(参见wxSlider
)的事件信息。
请注意,滚动窗口发送的 wxScrollWinEvent
不是继承自 wxCommandEvent
,而是直接继承自 wxEvent
- 不要混淆这两种事件,并且只为类似滚动条的控件使用下面提到的事件表宏。
EVT_SCROLL_THUMBRELEASE 和 EVT_SCROLL_CHANGED 之间的区别
EVT_SCROLL_THUMBRELEASE 事件仅在实际使用鼠标拖动滑块并释放时发出(此 EVT_SCROLL_THUMBRELEASE 事件之后还会跟着一个 EVT_SCROLL_CHANGED 事件)。
EVT_SCROLL_CHANGED 事件也会在使用键盘更改滑块位置以及单击滑块旁边时发生(在所有这些情况下,不会发生 EVT_SCROLL_THUMBRELEASE 事件)。
简而言之,EVT_SCROLL_CHANGED 事件在滚动/移动完成后触发,而不管它是如何开始的。请查看 page_samples_widgets(“滑块”页面),以了解 EVT_SCROLL_THUMBRELEASE 和 EVT_SCROLL_CHANGED 之间的实际区别。
备注:请注意,除非指定了滚动控件标识符,否则您需要使用 getOrientation/1
测试滚动条的方向,因为水平和垂直滚动事件是使用相同的事件处理程序处理的。
参见
此类派生自以下类,可以使用其函数:
wxWidgets 文档: wxScrollEvent
事件
使用 wxEvtHandler:connect/3
和 wxScrollEventType
来订阅此类型的事件。
摘要
类型
-type wxScroll() :: #wxScroll{type :: wxScrollEvent:wxScrollEventType(), commandInt :: integer(), extraLong :: integer()}.
-type wxScrollEvent() :: wx:wx_object().
-type wxScrollEventType() ::
scroll_top | scroll_bottom | scroll_lineup | scroll_linedown | scroll_pageup |
scroll_pagedown | scroll_thumbtrack | scroll_thumbrelease | scroll_changed.
函数
-spec getOrientation(This) -> integer() when This :: wxScrollEvent().
返回 wxHORIZONTAL 或 wxVERTICAL,具体取决于滚动条的方向。
-spec getPosition(This) -> integer() when This :: wxScrollEvent().
返回滚动条的位置。