檢視原始碼 wxEvtHandler (wx v2.4.3)

事件處理器

一個可以處理來自視窗系統事件的類別。wxWindow (因此所有視窗類別) 都是由此類別衍生而來。

要從 wxwidgets 物件取得事件,您需要呼叫 connect/3 來訂閱它們。

如果沒有提供 callback 選項,事件將會以訊息形式傳送。

這些訊息將會是 #wx{},其中 EventRecord 是一個根據 wxEventType 而定的記錄。這些記錄定義在:wx/include/wx.hrl

如果提供了一個回呼函式給 connect,回呼函式將會被呼叫 (在另一個程序中) 來處理事件。回呼函式應該要有兩個參數。

fun Callback (EventRecord::wx(), EventObject::wxObject()).

注意:每次回呼函式都會在新的程序中執行。

請參閱:事件總覽

wxWidgets 文件:wxEvtHandler

摘要

函式

此函式用於訂閱事件。

此函式用於取消程序或回呼函式對事件處理器的訂閱。

型別

-type event() ::
          wxActivateEvent:wxActivate() |
          wxAuiManagerEvent:wxAuiManager() |
          wxAuiNotebookEvent:wxAuiNotebook() |
          wxBookCtrlEvent:wxBookCtrl() |
          wxCalendarEvent:wxCalendar() |
          wxChildFocusEvent:wxChildFocus() |
          wxClipboardTextEvent:wxClipboardText() |
          wxCloseEvent:wxClose() |
          wxColourPickerEvent:wxColourPicker() |
          wxCommandEvent:wxCommand() |
          wxContextMenuEvent:wxContextMenu() |
          wxDateEvent:wxDate() |
          wxDisplayChangedEvent:wxDisplayChanged() |
          wxDropFilesEvent:wxDropFiles() |
          wxEraseEvent:wxErase() |
          wxFileDirPickerEvent:wxFileDirPicker() |
          wxFocusEvent:wxFocus() |
          wxFontPickerEvent:wxFontPicker() |
          wxGridEvent:wxGrid() |
          wxHelpEvent:wxHelp() |
          wxHtmlLinkEvent:wxHtmlLink() |
          wxIconizeEvent:wxIconize() |
          wxIdleEvent:wxIdle() |
          wxInitDialogEvent:wxInitDialog() |
          wxJoystickEvent:wxJoystick() |
          wxKeyEvent:wxKey() |
          wxListEvent:wxList() |
          wxMaximizeEvent:wxMaximize() |
          wxMenuEvent:wxMenu() |
          wxMouseCaptureChangedEvent:wxMouseCaptureChanged() |
          wxMouseCaptureLostEvent:wxMouseCaptureLost() |
          wxMouseEvent:wxMouse() |
          wxMoveEvent:wxMove() |
          wxNavigationKeyEvent:wxNavigationKey() |
          wxPaintEvent:wxPaint() |
          wxPaletteChangedEvent:wxPaletteChanged() |
          wxQueryNewPaletteEvent:wxQueryNewPalette() |
          wxSashEvent:wxSash() |
          wxScrollEvent:wxScroll() |
          wxScrollWinEvent:wxScrollWin() |
          wxSetCursorEvent:wxSetCursor() |
          wxShowEvent:wxShow() |
          wxSizeEvent:wxSize() |
          wxSpinEvent:wxSpin() |
          wxSplitterEvent:wxSplitter() |
          wxStyledTextEvent:wxStyledText() |
          wxSysColourChangedEvent:wxSysColourChanged() |
          wxTaskBarIconEvent:wxTaskBarIcon() |
          wxTreeEvent:wxTree() |
          wxUpdateUIEvent:wxUpdateUI() |
          wxWebViewEvent:wxWebView() |
          wxWindowCreateEvent:wxWindowCreate() |
          wxWindowDestroyEvent:wxWindowDestroy().
-type wx() :: #wx{id :: integer(), obj :: wx:wx_object(), userData :: term(), event :: event()}.
連結到此型別

wxEventType()

檢視原始碼 (未匯出)
-type wxEventType() ::
          wxActivateEvent:wxActivateEventType() |
          wxAuiManagerEvent:wxAuiManagerEventType() |
          wxAuiNotebookEvent:wxAuiNotebookEventType() |
          wxBookCtrlEvent:wxBookCtrlEventType() |
          wxCalendarEvent:wxCalendarEventType() |
          wxChildFocusEvent:wxChildFocusEventType() |
          wxClipboardTextEvent:wxClipboardTextEventType() |
          wxCloseEvent:wxCloseEventType() |
          wxColourPickerEvent:wxColourPickerEventType() |
          wxCommandEvent:wxCommandEventType() |
          wxContextMenuEvent:wxContextMenuEventType() |
          wxDateEvent:wxDateEventType() |
          wxDisplayChangedEvent:wxDisplayChangedEventType() |
          wxDropFilesEvent:wxDropFilesEventType() |
          wxEraseEvent:wxEraseEventType() |
          wxFileDirPickerEvent:wxFileDirPickerEventType() |
          wxFocusEvent:wxFocusEventType() |
          wxFontPickerEvent:wxFontPickerEventType() |
          wxGridEvent:wxGridEventType() |
          wxHelpEvent:wxHelpEventType() |
          wxHtmlLinkEvent:wxHtmlLinkEventType() |
          wxIconizeEvent:wxIconizeEventType() |
          wxIdleEvent:wxIdleEventType() |
          wxInitDialogEvent:wxInitDialogEventType() |
          wxJoystickEvent:wxJoystickEventType() |
          wxKeyEvent:wxKeyEventType() |
          wxListEvent:wxListEventType() |
          wxMaximizeEvent:wxMaximizeEventType() |
          wxMenuEvent:wxMenuEventType() |
          wxMouseCaptureChangedEvent:wxMouseCaptureChangedEventType() |
          wxMouseCaptureLostEvent:wxMouseCaptureLostEventType() |
          wxMouseEvent:wxMouseEventType() |
          wxMoveEvent:wxMoveEventType() |
          wxNavigationKeyEvent:wxNavigationKeyEventType() |
          wxPaintEvent:wxPaintEventType() |
          wxPaletteChangedEvent:wxPaletteChangedEventType() |
          wxQueryNewPaletteEvent:wxQueryNewPaletteEventType() |
          wxSashEvent:wxSashEventType() |
          wxScrollEvent:wxScrollEventType() |
          wxScrollWinEvent:wxScrollWinEventType() |
          wxSetCursorEvent:wxSetCursorEventType() |
          wxShowEvent:wxShowEventType() |
          wxSizeEvent:wxSizeEventType() |
          wxSpinEvent:wxSpinEventType() |
          wxSplitterEvent:wxSplitterEventType() |
          wxStyledTextEvent:wxStyledTextEventType() |
          wxSysColourChangedEvent:wxSysColourChangedEventType() |
          wxTaskBarIconEvent:wxTaskBarIconEventType() |
          wxTreeEvent:wxTreeEventType() |
          wxUpdateUIEvent:wxUpdateUIEventType() |
          wxWebViewEvent:wxWebViewEventType() |
          wxWindowCreateEvent:wxWindowCreateEventType() |
          wxWindowDestroyEvent:wxWindowDestroyEventType().
-type wxEvtHandler() :: wx:wx_object().

函式

連結到此函式

connect(This, EventType)

檢視原始碼
-spec connect(This :: wxEvtHandler(), EventType :: wxEventType()) -> ok.

等同於 connect(This, EventType, [])

-spec connect(This :: wxEvtHandler(), EventType :: wxEventType(), [Option]) -> ok
                 when
                     Option ::
                         {id, integer()} |
                         {lastId, integer()} |
                         {skip, boolean()} |
                         callback |
                         {callback, function()} |
                         {userData, term()}.

此函式用於訂閱事件。

訂閱類型為 EventType 的事件,範圍在 idlastId 之間。

如果沒有提供回呼函式,事件將會以訊息形式接收。

選項

id:{id, integer()}與此事件處理器相關聯的識別符 (或識別符範圍的起始)。預設值為 ?wxID_ANY

lastid:{lastId,integer()}識別符範圍的第二部分。如果使用,'id' 必須設定為起始識別符範圍。預設值為 ?wxID_ANY

skip:{skip,boolean()}如果 skip 為 true,則會呼叫進一步的事件處理器。如果使用 'callback' 選項則不會使用此項。預設值為 false

callback:{callback,function()}使用回呼函式fun(EventRecord::wx(),EventObject::wxObject())來處理事件。預設值為未指定,即訊息將會傳遞至呼叫此函式的程序。

userData:{userData,term()}一個將會與事件一起傳送的 Erlang 項。預設值:[]。

-spec disconnect(This :: wxEvtHandler()) -> boolean().

等同於 disconnect(This, null, [])

連結到此函式

disconnect(This, EventType)

檢視原始碼
-spec disconnect(This :: wxEvtHandler(), EventType :: wxEventType()) -> boolean().

等同於 disconnect(This, EventType, [])

-spec disconnect(This :: wxEvtHandler(), EventType :: wxEventType(), [Option]) -> boolean()
                    when Option :: {id, integer()} | {lastId, integer()} | {callback, function()}.

此函式用於取消程序或回呼函式對事件處理器的訂閱。

EventType 可以是原子 'null' 以匹配任何事件類型。請注意,選項 skip 和 userdata 不會用於匹配事件處理器。