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)