查看源代码 wxFocusEvent (wx v2.4.3)
当窗口的焦点改变时,会发送一个焦点事件。
失去焦点的窗口会收到一个“失去焦点”事件,而获得焦点的窗口会收到一个“设置焦点”事件。
请注意,当用户将焦点给予窗口时(无论是使用鼠标还是键盘),以及通过程序本身使用 wxWindow:setFocus/1
进行设置时,都会发生设置焦点事件。
焦点事件处理程序几乎总是应该在其事件参数上调用 wxEvent:skip/2
,以允许执行默认处理。未能这样做可能会导致本地控件的行为不正确。另请注意,wxEVT_KILL_FOCUS
处理程序不得调用 wxWindow:setFocus/1
,因为并非所有本地控件都支持这样做。如果需要这样做,请考虑使用 延迟动作机制
(未在 wx 中实现),该机制在 wxIdleEvent
文档中描述。
请参阅:概述事件
此类派生自 wxEvent,并可以使用其函数。
wxWidgets 文档:wxFocusEvent
事件
使用 wxEvtHandler:connect/3
和 wxFocusEventType
来订阅此类型的事件。
摘要
函数
返回与此事件关联的窗口,即对于 wxEVT_SET_FOCUS
事件,它是之前具有焦点的窗口,对于 wxEVT_KILL_FOCUS
事件,它是即将接收焦点的窗口。
类型
-type wxFocus() :: #wxFocus{type :: wxFocusEvent:wxFocusEventType(), win :: wxWindow:wxWindow()}.
-type wxFocusEvent() :: wx:wx_object().
-type wxFocusEventType() :: set_focus | kill_focus.
函数
-spec getWindow(This) -> wxWindow:wxWindow() when This :: wxFocusEvent().
返回与此事件关联的窗口,即对于 wxEVT_SET_FOCUS
事件,它是之前具有焦点的窗口,对于 wxEVT_KILL_FOCUS
事件,它是即将接收焦点的窗口。
警告:窗口指针可能为 NULL!