wxWidgets程序整体框架及其执行过程
2011-08-27 00:52
411 查看
一、整体框架:
1、一个继承自wxApp的类,类中至少一个返回值为bool的虚函数:OnInit()作为程序入口函数。返回值为真,则wxWidgets开始进入事件循环,接受输入事件并进行处理。返回值为假,则释放已经分配的资源,结束程序的运行。
2、一个继承自wxFrame的类,此类负责整个窗口的布局。定义一些事件处理函数,以及对事件绑定的宏声明。
3、类事件列表:BEGIN_EVENT_TABLE()...END_EVENT_TABLE(),对事件和处理事件的函数进行绑定。
4、程序入口类指定宏:IMPLEMENT_App();
5、DECLARE_App();
二、程序执行的一般过程
1、根据不同OS平台,不同的入口函数调用(由wxWidgets内部提供),初始化自己的数据结构,为一-4中指定的类创建一个实例。
2、wxWidgets调用实例中的OnInit(),而OnInit()又创建一个一-2类的一个实例。
3、一-2中的构造函数创建一个窗口,并为之加上图标,菜单和工具栏等。
4、OnInit()显示主窗体并返回真。
5、wxWidgets进入事件循环,等待并处理事件。
说明:事件由用户触发,处理事件的方法由类事件列表绑定,处理过程由用户定义。
附:
1、wxT宏,类似于_T(),_()处理编码兼容性问题。
2、事件表有动态和静态,以上宏中指定的为静态的。
一、事件表的创建和事件的处理过程
1、静态事件表的创建过程:
(1)、定义一个直接或者间接继承自wxEvtHandler的类。
(2)、定义想处理事件的事件处理函数。
(3)、在DECLARE_EVENT_TABLE中声明事件表。
(4)、在.cpp中用BEGIN_EVENT_TABLE和END_EVENT_TABLE实现一个事件表。
(5)、在事件表中加入事件宏,来实现事件到事件处理过程的映射。
2、事件处理函数的形式
(1)、返回值为void。
(2)、都不是虚函数。
(3)、一个事件对象做为参数。
3、事件处理过程
(1)、需要递归查找类事件表的是:wxCommandEvent以及直接或者间接继承此事件的事件。
(2)、不能传递给父窗口处理的事件:wxActivate,wxCloseEvent,wxEraseEvent,wxFocu-
sEvent,wxKeyEvent,wxIdleEvent,wxInitDialogEvent,wxJoystickEvent,wxMenuEvent,
wxMouseEvent,wxMoveEvent,wxPaintEvent,wxQueryLayoutInfoEvent,wxSizeEvent,
wxScrollWinEvent,wxSysColourChangedEvent。原因在于这些事件只对本窗口有意义。
二、事件的过滤
以上为处理按钮单击事件的过程,由此可知:通过这种方法可以改变本地控件的默认行为,方法是继承一个父控件的继承类,在事件表中使用事件映射宏过滤不想要的事件。
文本框只接受"a"~"z"和"A"~"Z"的输入:
view plaincopy
to clipboardprint?
void MyTextCtrl::OnChar( wxKeyEvent& event )
{
if ( wxIsalpha( event.KeyCode() ) )
{
// 这些按键在可以接受的范围,所以按照正常的流程处理
event.Skip();
}
else
{
// 这些事件不再我们可以接受的范围,所以不用调用函数Skip
// 由于事件表已经匹配并且没有调用函数Skip,所以事件处理
// 过程不会再继续匹配别的事件表,而是认为时间处理已经结束。
wxBell();
}
}
五、窗口标示符
窗口标识符是在事件系统中用来唯一确定窗口的整数。事实上,在整个应用程序的范围内,窗口标识符不必一定是唯一的,而只要在某个固定的上下文(比如说,在一个frame窗口和它的所有子窗口)内是唯一的就可以了。举例来说:你可以在无数个对话框中使用wxID_OK这个标识符,只要在某个对话框内不要重复使用就可以了。
wxWidgets自动创建的标识符是总是一个负数,所以永远不会和用户定义的窗口标识符重复,用户定义的窗口标识符只能是正整数。
为了避免你自己定义的标识符和这些预定义的标识符重复,你可以使用大于wxID_HIGHEST的标识符或者小于wxID_LOWEST的标识符。
六、自定义事件
理解中。。。
命令事件
wxEVT_COMMAND_BUTTON_CLICKED, 1
wxEVT_COMMAND_CHECKBOX_CLICKED, 2
wxEVT_COMMAND_CHOICE_SELECTED, 3
wxEVT_COMMAND_LISTBOX_SELECTED, 4
wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, 5
wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, 6
以下这一段事件ID由于版本更新,已经移到了<wx/textctrl.h>中进行定义。
#if WXWIN_COMPATIBILITY_EVENT_TYPES
wxEVT_COMMAND_TEXT_UPDATED, 7
wxEVT_COMMAND_TEXT_ENTER, 8
wxEVT_COMMAND_TEXT_URL, 13
wxEVT_COMMAND_TEXT_MAXLEN, 14
#endif // WXWIN_COMPATIBILITY_EVENT_TYPES
wxEVT_COMMAND_MENU_SELECTED, 9
wxEVT_COMMAND_SLIDER_UPDATED, 10
wxEVT_COMMAND_RADIOBOX_SELECTED, 11
wxEVT_COMMAND_RADIOBUTTON_SELECTED, 12
wxEVT_COMMAND_SCROLLBAR_UPDATED 现在已废弃不用,转而使用wxEVT_SCROLL。
wxEVT_COMMAND_SCROLLBAR_UPDATED, 13
wxEVT_COMMAND_VLBOX_SELECTED, 14
wxEVT_COMMAND_COMBOBOX_SELECTED, 15
wxEVT_COMMAND_TOOL_RCLICKED, 16
wxEVT_COMMAND_TOOL_ENTER, 17
wxEVT_COMMAND_SPINCTRL_UPDATED, 18
以下两个事件也被废弃了// Sockets and timers send events, too
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_BASE, wxEVT_SOCKET, 50)
wxEVT_TIMER , 80
·鼠标事件
wxEVT_LEFT_DOWN, 100
wxEVT_LEFT_UP, 101
wxEVT_MIDDLE_DOWN, 102
wxEVT_MIDDLE_UP, 103
wxEVT_RIGHT_DOWN, 104
wxEVT_RIGHT_UP, 105
wxEVT_MOTION, 106
wxEVT_ENTER_WINDOW, 107
wxEVT_LEAVE_WINDOW, 108
wxEVT_LEFT_DCLICK, 109
wxEVT_MIDDLE_DCLICK, 110
wxEVT_RIGHT_DCLICK, 111
wxEVT_SET_FOCUS, 112
wxEVT_KILL_FOCUS, 113
wxEVT_CHILD_FOCUS, 114
wxEVT_MOUSEWHEEL, 115
·非客户区(Non-client)鼠标事件
wxEVT_NC_LEFT_DOWN, 200
wxEVT_NC_LEFT_UP, 201
wxEVT_NC_MIDDLE_DOWN, 202
wxEVT_NC_MIDDLE_UP, 203
wxEVT_NC_RIGHT_DOWN, 204
wxEVT_NC_RIGHT_UP, 205
wxEVT_NC_MOTION, 206
wxEVT_NC_ENTER_WINDOW, 207
wxEVT_NC_LEAVE_WINDOW, 208
wxEVT_NC_LEFT_DCLICK, 209
wxEVT_NC_MIDDLE_DCLICK, 210
wxEVT_NC_RIGHT_DCLICK, 211
·字符输入事件
wxEVT_CHAR, 212
wxEVT_CHAR_HOOK, 213
wxEVT_NAVIGATION_KEY, 214
wxEVT_KEY_DOWN, 215
wxEVT_KEY_UP, 216
#if wxUSE_HOTKEY
wxEVT_HOTKEY, 217
#endif
·设置焦点(Cursor)事件
wxEVT_SET_CURSOR, 230
· 来自wxScrollBar控件和wxSlider控件的滚动事件
wxEVT_SCROLL_TOP, 300
wxEVT_SCROLL_BOTTOM, 301
wxEVT_SCROLL_LINEUP, 302
wxEVT_SCROLL_LINEDOWN, 303
wxEVT_SCROLL_PAGEUP, 304
wxEVT_SCROLL_PAGEDOWN, 305
wxEVT_SCROLL_THUMBTRACK, 306
wxEVT_SCROLL_THUMBRELEASE, 307
wxEVT_SCROLL_CHANGED, 308
·来自wxWindow的滚动事件
wxEVT_SCROLLWIN_TOP, 320
wxEVT_SCROLLWIN_BOTTOM, 321
wxEVT_SCROLLWIN_LINEUP, 322
wxEVT_SCROLLWIN_LINEDOWN, 323
wxEVT_SCROLLWIN_PAGEUP, 324
wxEVT_SCROLLWIN_PAGEDOWN, 325
wxEVT_SCROLLWIN_THUMBTRACK, 326
wxEVT_SCROLLWIN_THUMBRELEASE, 327
·系统事件
wxEVT_SIZE, 400
wxEVT_MOVE, 401
wxEVT_CLOSE_WINDOW, 402
wxEVT_END_SESSION, 403
wxEVT_QUERY_END_SESSION, 404
wxEVT_ACTIVATE_APP, 405
406..408 被用于苹果公司PowerPC上,这里没有列出。如果想查看这些事件,可去看<wx/power.h >。
wxEVT_ACTIVATE, 409
wxEVT_CREATE, 410
wxEVT_DESTROY, 411
wxEVT_SHOW, 412
wxEVT_ICONIZE, 413
wxEVT_MAXIMIZE, 414
wxEVT_MOUSE_CAPTURE_CHANGED, 415
wxEVT_MOUSE_CAPTURE_LOST, 416
wxEVT_PAINT, 417
wxEVT_ERASE_BACKGROUND, 418
wxEVT_NC_PAINT, 419
wxEVT_PAINT_ICON, 420
wxEVT_MENU_OPEN, 421
wxEVT_MENU_CLOSE, 422
wxEVT_MENU_HIGHLIGHT, 423
wxEVT_CONTEXT_MENU, 424
wxEVT_SYS_COLOUR_CHANGED, 425
wxEVT_DISPLAY_CHANGED, 426
wxEVT_SETTING_CHANGED, 427
wxEVT_QUERY_NEW_PALETTE, 428
wxEVT_PALETTE_CHANGED, 429
wxEVT_JOY_BUTTON_DOWN, 430
wxEVT_JOY_BUTTON_UP, 431
wxEVT_JOY_MOVE, 432
wxEVT_JOY_ZMOVE, 433
wxEVT_DROP_FILES, 434
wxEVT_DRAW_ITEM, 435
wxEVT_MEASURE_ITEM, 436
wxEVT_COMPARE_ITEM, 437
wxEVT_INIT_DIALOG, 438
wxEVT_IDLE, 439
wxEVT_UPDATE_UI, 440
wxEVT_SIZING, 441
wxEVT_MOVING, 442
wxEVT_HIBERNATE, 443
·剪贴板事件
wxEVT_COMMAND_TEXT_COPY, 444
wxEVT_COMMAND_TEXT_CUT, 445
wxEVT_COMMAND_TEXT_PASTE, 446
·通用命令事件(注意,一个Click事件是比button down/up优先级更高的。
wxEVT_COMMAND_LEFT_CLICK, 500
wxEVT_COMMAND_LEFT_DCLICK, 501
wxEVT_COMMAND_RIGHT_CLICK, 502
wxEVT_COMMAND_RIGHT_DCLICK, 503
wxEVT_COMMAND_SET_FOCUS, 504
wxEVT_COMMAND_KILL_FOCUS, 505
wxEVT_COMMAND_ENTER, 506
·帮助事件
wxEVT_HELP, 1050
wxEVT_DETAILED_HELP, 1051
以下两个事件是等价的
wxEVT_COMMAND_TOOL_CLICKED wxEVT_COMMAND_MENU_SELECTED
事件手柄列表
wxCommandEventHandler
wxScrollEventHandler
wxScrollWinEventHandler
wxSizeEventHandler
wxMoveEventHandler
wxPaintEventHandler
wxNcPaintEventHandler
wxEraseEventHandler
wxMouseEventHandler
wxCharEventHandler
wxKeyEventHandler wxCharEventHandler
wxFocusEventHandler
wxChildFocusEventHandler
wxActivateEventHandler
wxMenuEventHandler
wxJoystickEventHandler
wxDropFilesEventHandler
wxInitDialogEventHandler
wxSysColourChangedEventHandler
wxDisplayChangedEventHandler
wxUpdateUIEventHandler
wxIdleEventHandler
wxCloseEventHandler
wxShowEventHandler
wxIconizeEventHandler
wxMaximizeEventHandler
wxNavigationKeyEventHandler
wxPaletteChangedEventHandler
wxQueryNewPaletteEventHandler
wxWindowCreateEventHandler
wxWindowDestroyEventHandler
wxSetCursorEventHandler
wxNotifyEventHandler
wxHelpEventHandler
wxContextMenuEventHandler
wxMouseCaptureChangedEventHandler
wxMouseCaptureLostEventHandler
wxClipboardTextEventHandler
1、一个继承自wxApp的类,类中至少一个返回值为bool的虚函数:OnInit()作为程序入口函数。返回值为真,则wxWidgets开始进入事件循环,接受输入事件并进行处理。返回值为假,则释放已经分配的资源,结束程序的运行。
2、一个继承自wxFrame的类,此类负责整个窗口的布局。定义一些事件处理函数,以及对事件绑定的宏声明。
3、类事件列表:BEGIN_EVENT_TABLE()...END_EVENT_TABLE(),对事件和处理事件的函数进行绑定。
4、程序入口类指定宏:IMPLEMENT_App();
5、DECLARE_App();
二、程序执行的一般过程
1、根据不同OS平台,不同的入口函数调用(由wxWidgets内部提供),初始化自己的数据结构,为一-4中指定的类创建一个实例。
2、wxWidgets调用实例中的OnInit(),而OnInit()又创建一个一-2类的一个实例。
3、一-2中的构造函数创建一个窗口,并为之加上图标,菜单和工具栏等。
4、OnInit()显示主窗体并返回真。
5、wxWidgets进入事件循环,等待并处理事件。
说明:事件由用户触发,处理事件的方法由类事件列表绑定,处理过程由用户定义。
附:
1、wxT宏,类似于_T(),_()处理编码兼容性问题。
2、事件表有动态和静态,以上宏中指定的为静态的。
一、事件表的创建和事件的处理过程
1、静态事件表的创建过程:
(1)、定义一个直接或者间接继承自wxEvtHandler的类。
(2)、定义想处理事件的事件处理函数。
(3)、在DECLARE_EVENT_TABLE中声明事件表。
(4)、在.cpp中用BEGIN_EVENT_TABLE和END_EVENT_TABLE实现一个事件表。
(5)、在事件表中加入事件宏,来实现事件到事件处理过程的映射。
2、事件处理函数的形式
(1)、返回值为void。
(2)、都不是虚函数。
(3)、一个事件对象做为参数。
3、事件处理过程
(1)、需要递归查找类事件表的是:wxCommandEvent以及直接或者间接继承此事件的事件。
(2)、不能传递给父窗口处理的事件:wxActivate,wxCloseEvent,wxEraseEvent,wxFocu-
sEvent,wxKeyEvent,wxIdleEvent,wxInitDialogEvent,wxJoystickEvent,wxMenuEvent,
wxMouseEvent,wxMoveEvent,wxPaintEvent,wxQueryLayoutInfoEvent,wxSizeEvent,
wxScrollWinEvent,wxSysColourChangedEvent。原因在于这些事件只对本窗口有意义。
二、事件的过滤
以上为处理按钮单击事件的过程,由此可知:通过这种方法可以改变本地控件的默认行为,方法是继承一个父控件的继承类,在事件表中使用事件映射宏过滤不想要的事件。
文本框只接受"a"~"z"和"A"~"Z"的输入:
view plaincopy
to clipboardprint?
void MyTextCtrl::OnChar( wxKeyEvent& event )
{
if ( wxIsalpha( event.KeyCode() ) )
{
// 这些按键在可以接受的范围,所以按照正常的流程处理
event.Skip();
}
else
{
// 这些事件不再我们可以接受的范围,所以不用调用函数Skip
// 由于事件表已经匹配并且没有调用函数Skip,所以事件处理
// 过程不会再继续匹配别的事件表,而是认为时间处理已经结束。
wxBell();
}
}
view plaincopy to clipboardprint? class MyFrame : public wxFrame { public: MyFrame( const wxString& title ); void OnQuit( wxCommandEvent& event ); void OnAbout( wxCommandEvent& event ); protected: private: // DECLARE_EVENT_TABLE()已经被注释掉了! }; class MyFrame : public wxFrame { public: MyFrame( const wxString& title ); void OnQuit( wxCommandEvent& event ); void OnAbout( wxCommandEvent& event ); protected: private: // DECLARE_EVENT_TABLE()已经被注释掉了! };
五、窗口标示符
窗口标识符是在事件系统中用来唯一确定窗口的整数。事实上,在整个应用程序的范围内,窗口标识符不必一定是唯一的,而只要在某个固定的上下文(比如说,在一个frame窗口和它的所有子窗口)内是唯一的就可以了。举例来说:你可以在无数个对话框中使用wxID_OK这个标识符,只要在某个对话框内不要重复使用就可以了。
wxWidgets自动创建的标识符是总是一个负数,所以永远不会和用户定义的窗口标识符重复,用户定义的窗口标识符只能是正整数。
标识符名称 | 描述 | |
wxID_ANY | 让wxWidgets自动产生一个标识符 | |
wxID_LOWEST | 最小的系统标识符值 (4999) | |
wxID_HIGHEST | 最大的系统标识符值 (5999) | |
wxID_OPEN | 打开文件 | |
wxID_CLOSE | 关闭窗口 | |
wxID_NEW | 新建窗口文件或者文档 | |
wxID_SAVE | 保存文件 | |
wxID_SAVEAS | 文件另存为(应该弹出文件位置对话框) | |
wxID_REVERT | 恢复文件在磁盘上的状态 | |
wxID_EXIT | 退出应用程序 | |
wxID_UNDO | 撤消最近一次操作 | |
wxID_REDO | 重复最近一次操作 | |
wxID_HELP | 帮助 (例如对话框上的帮助按钮可以用这个标识符) | |
wxID_PRINT | 打印 | |
wxID_PRINT_SETUP | 打印设置 | |
wxID_PREVIEW | 打印预览 | |
wxID_ABOUT | 显示一个用来描述整个程序的对话框 | |
wxID_HELP_CONTENTS | 显示上下文帮助 | |
wxID_HELP_COMMANDS | 显示应用程序命令 | |
wxID_HELP_PROCEDURES | 显示应用程序过程 | |
wxID_HELP_CONTEXT | 未使用 | |
wxID_CUT | 剪切 | |
wxID_COPY | 复制到剪贴板 | |
wxID_PASTE | 粘贴 | |
wxID_CLEAR | 清除 | |
wxID_FIND | 查找 | |
wxID_DUPLICATE | 复制 | |
wxID_SELECTALL | 全选 | |
wxID_DELETE | 删除 | |
wxID_REPLACE | 覆盖 | |
wxID_REPLACE_ALL | 全部覆盖 | |
wxID_PROPERTIES | 查看属性 | |
wxID_VIEW_DETAILS | 列表框中的按照详细信息方式显示 | |
wxID_VIEW_LARGEICONS | 列表框按照大图标的方式显示 | |
wxID_VIEW_SMALLICONS | 列表框中按照小图标的方式显示 | |
wxID_VIEW_LIST | 列表框中按照列表的的方式显示 | |
wxID_VIEW_SORTDATE | 按照日期排序 | |
wxID_VIEW_SORTNAME | 按照名称排序 | |
wxID_VIEW_SORTSIZE | 按照大小排序 | |
wxID_VIEW_SORTTYPE | 按照类型排序 | |
wxID_FILE1 to wxID_FILE9 | 显示最近使用的文件 | |
wxID_OK | 确定 | |
wxID_CANCEL | 取消 | |
wxID_APPLY | 应用变更 | |
wxID_YES | YES | |
wxID_NO | No | |
wxID_STATIC | 静态文本或者静态图片可以用这个标识符 | |
wxID_FORWARD | 向前 | |
wxID_BACKWARD | 向后 | |
wxID_DEFAULT | 恢复默认设置 | |
wxID_MORE | 显示更多选项 | |
wxID_SETUP | 显示一个设置对话框 | |
wxID_RESET | 重置所有选项 | |
wxID_CONTEXT_HELP | 显示上下文帮助 | |
wxID_YESTOALL | 全部选是 | |
wxID_NOTOALL | 全部选否 | |
wxID_ABORT | 中止当前操作 | |
wxID_RETRY | 重试 | |
wxID_IGNORE | 忽略错误 | |
wxID_UP | 向上 | |
wxID_DOWN | 向下 | |
wxID_HOME | 首页 | |
wxID_REFRESH | 刷新 | |
wxID_STOP | 停止正在进行的操作 | |
wxID_INDEX | 显示一个索引 | |
wxID_BOLD | 加粗显示 | |
wxID_ITALIC | 斜体显示 | |
wxID_JUSTIFY_CENTER | 居中 | |
wxID_JUSTIFY_FILL | 格式 | |
wxID_JUSTIFY_RIGHT | 右对齐 | |
wxID_JUSTIFY_LEFT | 左对齐 | |
wxID_UNDERLINE | 下划线 | |
wxID_INDENT | 缩进 | |
wxID_UNINDENT | 反缩进 | |
wxID_ZOOM_100 | 放大到100% | |
wxID_ZOOM_FIT | 缩放到整页 | |
wxID_ZOOM_IN | 放大 | |
wxID_ZOOM_OUT | 缩小 | |
wxID_UNDELETE | 反删除 | |
wxID_REVERT_TO_SAVED | 恢复到上次保存的状态 |
六、自定义事件
理解中。。。
命令事件
wxEVT_COMMAND_BUTTON_CLICKED, 1
wxEVT_COMMAND_CHECKBOX_CLICKED, 2
wxEVT_COMMAND_CHOICE_SELECTED, 3
wxEVT_COMMAND_LISTBOX_SELECTED, 4
wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, 5
wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, 6
以下这一段事件ID由于版本更新,已经移到了<wx/textctrl.h>中进行定义。
#if WXWIN_COMPATIBILITY_EVENT_TYPES
wxEVT_COMMAND_TEXT_UPDATED, 7
wxEVT_COMMAND_TEXT_ENTER, 8
wxEVT_COMMAND_TEXT_URL, 13
wxEVT_COMMAND_TEXT_MAXLEN, 14
#endif // WXWIN_COMPATIBILITY_EVENT_TYPES
wxEVT_COMMAND_MENU_SELECTED, 9
wxEVT_COMMAND_SLIDER_UPDATED, 10
wxEVT_COMMAND_RADIOBOX_SELECTED, 11
wxEVT_COMMAND_RADIOBUTTON_SELECTED, 12
wxEVT_COMMAND_SCROLLBAR_UPDATED 现在已废弃不用,转而使用wxEVT_SCROLL。
wxEVT_COMMAND_SCROLLBAR_UPDATED, 13
wxEVT_COMMAND_VLBOX_SELECTED, 14
wxEVT_COMMAND_COMBOBOX_SELECTED, 15
wxEVT_COMMAND_TOOL_RCLICKED, 16
wxEVT_COMMAND_TOOL_ENTER, 17
wxEVT_COMMAND_SPINCTRL_UPDATED, 18
以下两个事件也被废弃了// Sockets and timers send events, too
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_BASE, wxEVT_SOCKET, 50)
wxEVT_TIMER , 80
·鼠标事件
wxEVT_LEFT_DOWN, 100
wxEVT_LEFT_UP, 101
wxEVT_MIDDLE_DOWN, 102
wxEVT_MIDDLE_UP, 103
wxEVT_RIGHT_DOWN, 104
wxEVT_RIGHT_UP, 105
wxEVT_MOTION, 106
wxEVT_ENTER_WINDOW, 107
wxEVT_LEAVE_WINDOW, 108
wxEVT_LEFT_DCLICK, 109
wxEVT_MIDDLE_DCLICK, 110
wxEVT_RIGHT_DCLICK, 111
wxEVT_SET_FOCUS, 112
wxEVT_KILL_FOCUS, 113
wxEVT_CHILD_FOCUS, 114
wxEVT_MOUSEWHEEL, 115
·非客户区(Non-client)鼠标事件
wxEVT_NC_LEFT_DOWN, 200
wxEVT_NC_LEFT_UP, 201
wxEVT_NC_MIDDLE_DOWN, 202
wxEVT_NC_MIDDLE_UP, 203
wxEVT_NC_RIGHT_DOWN, 204
wxEVT_NC_RIGHT_UP, 205
wxEVT_NC_MOTION, 206
wxEVT_NC_ENTER_WINDOW, 207
wxEVT_NC_LEAVE_WINDOW, 208
wxEVT_NC_LEFT_DCLICK, 209
wxEVT_NC_MIDDLE_DCLICK, 210
wxEVT_NC_RIGHT_DCLICK, 211
·字符输入事件
wxEVT_CHAR, 212
wxEVT_CHAR_HOOK, 213
wxEVT_NAVIGATION_KEY, 214
wxEVT_KEY_DOWN, 215
wxEVT_KEY_UP, 216
#if wxUSE_HOTKEY
wxEVT_HOTKEY, 217
#endif
·设置焦点(Cursor)事件
wxEVT_SET_CURSOR, 230
· 来自wxScrollBar控件和wxSlider控件的滚动事件
wxEVT_SCROLL_TOP, 300
wxEVT_SCROLL_BOTTOM, 301
wxEVT_SCROLL_LINEUP, 302
wxEVT_SCROLL_LINEDOWN, 303
wxEVT_SCROLL_PAGEUP, 304
wxEVT_SCROLL_PAGEDOWN, 305
wxEVT_SCROLL_THUMBTRACK, 306
wxEVT_SCROLL_THUMBRELEASE, 307
wxEVT_SCROLL_CHANGED, 308
·来自wxWindow的滚动事件
wxEVT_SCROLLWIN_TOP, 320
wxEVT_SCROLLWIN_BOTTOM, 321
wxEVT_SCROLLWIN_LINEUP, 322
wxEVT_SCROLLWIN_LINEDOWN, 323
wxEVT_SCROLLWIN_PAGEUP, 324
wxEVT_SCROLLWIN_PAGEDOWN, 325
wxEVT_SCROLLWIN_THUMBTRACK, 326
wxEVT_SCROLLWIN_THUMBRELEASE, 327
·系统事件
wxEVT_SIZE, 400
wxEVT_MOVE, 401
wxEVT_CLOSE_WINDOW, 402
wxEVT_END_SESSION, 403
wxEVT_QUERY_END_SESSION, 404
wxEVT_ACTIVATE_APP, 405
406..408 被用于苹果公司PowerPC上,这里没有列出。如果想查看这些事件,可去看<wx/power.h >。
wxEVT_ACTIVATE, 409
wxEVT_CREATE, 410
wxEVT_DESTROY, 411
wxEVT_SHOW, 412
wxEVT_ICONIZE, 413
wxEVT_MAXIMIZE, 414
wxEVT_MOUSE_CAPTURE_CHANGED, 415
wxEVT_MOUSE_CAPTURE_LOST, 416
wxEVT_PAINT, 417
wxEVT_ERASE_BACKGROUND, 418
wxEVT_NC_PAINT, 419
wxEVT_PAINT_ICON, 420
wxEVT_MENU_OPEN, 421
wxEVT_MENU_CLOSE, 422
wxEVT_MENU_HIGHLIGHT, 423
wxEVT_CONTEXT_MENU, 424
wxEVT_SYS_COLOUR_CHANGED, 425
wxEVT_DISPLAY_CHANGED, 426
wxEVT_SETTING_CHANGED, 427
wxEVT_QUERY_NEW_PALETTE, 428
wxEVT_PALETTE_CHANGED, 429
wxEVT_JOY_BUTTON_DOWN, 430
wxEVT_JOY_BUTTON_UP, 431
wxEVT_JOY_MOVE, 432
wxEVT_JOY_ZMOVE, 433
wxEVT_DROP_FILES, 434
wxEVT_DRAW_ITEM, 435
wxEVT_MEASURE_ITEM, 436
wxEVT_COMPARE_ITEM, 437
wxEVT_INIT_DIALOG, 438
wxEVT_IDLE, 439
wxEVT_UPDATE_UI, 440
wxEVT_SIZING, 441
wxEVT_MOVING, 442
wxEVT_HIBERNATE, 443
·剪贴板事件
wxEVT_COMMAND_TEXT_COPY, 444
wxEVT_COMMAND_TEXT_CUT, 445
wxEVT_COMMAND_TEXT_PASTE, 446
·通用命令事件(注意,一个Click事件是比button down/up优先级更高的。
wxEVT_COMMAND_LEFT_CLICK, 500
wxEVT_COMMAND_LEFT_DCLICK, 501
wxEVT_COMMAND_RIGHT_CLICK, 502
wxEVT_COMMAND_RIGHT_DCLICK, 503
wxEVT_COMMAND_SET_FOCUS, 504
wxEVT_COMMAND_KILL_FOCUS, 505
wxEVT_COMMAND_ENTER, 506
·帮助事件
wxEVT_HELP, 1050
wxEVT_DETAILED_HELP, 1051
以下两个事件是等价的
wxEVT_COMMAND_TOOL_CLICKED wxEVT_COMMAND_MENU_SELECTED
事件手柄列表
wxCommandEventHandler
wxScrollEventHandler
wxScrollWinEventHandler
wxSizeEventHandler
wxMoveEventHandler
wxPaintEventHandler
wxNcPaintEventHandler
wxEraseEventHandler
wxMouseEventHandler
wxCharEventHandler
wxKeyEventHandler wxCharEventHandler
wxFocusEventHandler
wxChildFocusEventHandler
wxActivateEventHandler
wxMenuEventHandler
wxJoystickEventHandler
wxDropFilesEventHandler
wxInitDialogEventHandler
wxSysColourChangedEventHandler
wxDisplayChangedEventHandler
wxUpdateUIEventHandler
wxIdleEventHandler
wxCloseEventHandler
wxShowEventHandler
wxIconizeEventHandler
wxMaximizeEventHandler
wxNavigationKeyEventHandler
wxPaletteChangedEventHandler
wxQueryNewPaletteEventHandler
wxWindowCreateEventHandler
wxWindowDestroyEventHandler
wxSetCursorEventHandler
wxNotifyEventHandler
wxHelpEventHandler
wxContextMenuEventHandler
wxMouseCaptureChangedEventHandler
wxMouseCaptureLostEventHandler
wxClipboardTextEventHandler
相关文章推荐
- wxWidgets程序整体框架及其执行过程
- 从程序的执行过程的角度去编写IRQ中断框架代码
- MapReduce程序运行原理及其执行过程
- 深入剖析MFC基础框架——跟踪MFC单文档程序的执行过程:
- wxWidgets程序一般执行过程
- Java初始化顺序总结及其程序执行过程图- 静态变量、静态代码块、成员变量、构造函数
- 深入剖析MFC基础框架——跟踪MFC单文档程序的执行过程
- SpringMvc如何学习框架技术? 就像如上的图示一样,先掌握新技术的体系流程图。在快速弄明白程序执行流程后,在使用过程中 了解细节。
- hadoop 第一个程序wordcount执行过程
- ABAP程序编写过程中怎么提高程序执行效率六
- java连接oracle执行存储过程小程序
- mfc学习之分析mfc程序执行过程
- C++语言基础 例程 基于对象的程序的执行过程
- 一、update_binary的执行过程分析 上一篇幅中的子进程所执行的程序binary实际上就是update.zip包中的update-binary。我们在上文中也说过,Recover
- linux下C程序执行过程
- 自己手写WEB程序框架并执行
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->新增记录SQL执行过程
- python程序在DOS界面下的执行过程
- 戏(细)说Executor框架线程池任务执行全过程(下)
- 分享一个漂亮WPF界面框架创作过程及其源码