wxWidgets通過事件的形式進行各個模塊之間的通知
一般有2種情況下的事件, 一種是框架預先定義了一些公共的事件, 這些值的範圍在wxID_LOWEST和wxID_HIGHEST之間
還有一種是自定義的事件, 一般可以通過wxID_XXX事件的形式定義
包含的主要類:wxEvtHandler, wxWindow, wxEvent
介紹:在2.0之前, 事件處理通過回調的虛函數來支持, 比如說OnSize, 在2.0之後, 使用事件表來代替, 並使用部分異常
一個事件表替代實現文件來告訴wxWidgets如何實現事件到函數的映射, 這些函數不在是虛函數,名字可以自定義, 但是必須得有一個事件參數和返回爲void
類似的定義:
事件類型, 事件ID, 對應的調用函數
流程定義事件名:
定義事件表:
這個宏,可以出現在類的任何部分(公共,保護或私有),但它可能是更好的插入在結束時,因爲這個宏可能會改變訪問保護模式,這可能會產生意外
最後,如果你不喜歡使用靜態初始化的事件表,你也可以動態使用wxEvtHandler宏::連接到連接的事件處理程序在運行時,動態。看到事件的樣本,這樣做的一個例子。
一些基礎事件:
wxEvent 基礎事件
wxActivateEvent 激活窗口或者應用時候的激活事件
wxCloseEvent 關閉窗口或者結束會話事件
wxEraseEvent 擦除背景事件
wxFocusEvent 焦點改變事件
wxKeyEvent 鍵盤按鍵事件
wxIdleEvent 死亡事件
wxInitDialogEvent 初始化對話框事件
wxJoystickEvent 滑動杆事件
wxMenuEvent 菜單事件
wxMouseEvent 鼠標事件
wxMoveEvent 移動事件
wxPaintEvent 繪製事件
wxQueryLayoutInfoEvent 佈局事件
wxSetCursorEvent 設置鼠標
wxSizeEvent 改變大小事件
wxScrollWinEvent 滾動窗口事件
wxSysColourChangedEvent 系統顏色改變事件
wxCommandEvent 命令事件
一些控件的事件命令
EVT_COMMAND(id, event, func) EVT_COMMAND_RANGE(id1, id2, event, func) EVT_BUTTON(id, func) EVT_CHECKBOX(id, func) EVT_CHOICE(id, func) EVT_COMBOBOX(id, func) EVT_LISTBOX(id, func) EVT_LISTBOX_DCLICK(id, func) EVT_MENU(id, func) EVT_MENU_RANGE(id1, id2, func) EVT_CONTEXT_MENU(func) EVT_RADIOBOX(id, func) EVT_RADIOBUTTON(id, func) EVT_SCROLLBAR(id, func) EVT_SLIDER(id, func) EVT_TEXT(id, func) EVT_TEXT_ENTER(id, func) EVT_TEXT_MAXLEN(id, func) EVT_TOGGLEBUTTON(id, func) EVT_TOOL(id, func) EVT_TOOL_RANGE(id1, id2, func) EVT_TOOL_RCLICKED(id, func) EVT_TOOL_RCLICKED_RANGE(id1, id2, func) EVT_TOOL_ENTER(id, func) EVT_COMMAND_LEFT_CLICK(id, func) EVT_COMMAND_LEFT_DCLICK(id, func) EVT_COMMAND_RIGHT_CLICK(id, func) EVT_COMMAND_SET_FOCUS(id, func) EVT_COMMAND_KILL_FOCUS(id, func) EVT_COMMAND_ENTER(id, func)