wxWidgets事件ID列表

41 篇文章 1 订阅
cpp:nogutter] view plain copy print ?
  1. ·命令事件  
  2.   
  3. wxEVT_COMMAND_BUTTON_CLICKED, 1  
  4. wxEVT_COMMAND_CHECKBOX_CLICKED, 2  
  5. wxEVT_COMMAND_CHOICE_SELECTED, 3  
  6. wxEVT_COMMAND_LISTBOX_SELECTED, 4  
  7. wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, 5  
  8. wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, 6  
  9.   
  10. 以下这一段事件ID由于版本更新,已经移到了<wx/textctrl.h>中进行定义。  
  11.   
  12. #if WXWIN_COMPATIBILITY_EVENT_TYPES   
  13. wxEVT_COMMAND_TEXT_UPDATED, 7  
  14. wxEVT_COMMAND_TEXT_ENTER, 8  
  15. wxEVT_COMMAND_TEXT_URL, 13  
  16. wxEVT_COMMAND_TEXT_MAXLEN, 14  
  17. #endif // WXWIN_COMPATIBILITY_EVENT_TYPES   
  18.   
  19. wxEVT_COMMAND_MENU_SELECTED, 9  
  20. wxEVT_COMMAND_SLIDER_UPDATED, 10  
  21. wxEVT_COMMAND_RADIOBOX_SELECTED, 11  
  22. wxEVT_COMMAND_RADIOBUTTON_SELECTED, 12  
  23.   
  24. wxEVT_COMMAND_SCROLLBAR_UPDATED 现在已废弃不用,转而使用wxEVT_SCROLL。  
  25.   
  26. wxEVT_COMMAND_SCROLLBAR_UPDATED, 13  
  27. wxEVT_COMMAND_VLBOX_SELECTED, 14  
  28. wxEVT_COMMAND_COMBOBOX_SELECTED, 15  
  29. wxEVT_COMMAND_TOOL_RCLICKED, 16  
  30. wxEVT_COMMAND_TOOL_ENTER, 17  
  31. wxEVT_COMMAND_SPINCTRL_UPDATED, 18  
  32.   
  33.   
  34. 以下两个事件也被废弃了// Sockets and timers send events, too   
  35.   
  36. DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_BASE, wxEVT_SOCKET, 50)  
  37. wxEVT_TIMER , 80  
  38.   
  39.   
  40. ·鼠标事件  
  41.   
  42.   
  43. wxEVT_LEFT_DOWN, 100  
  44. wxEVT_LEFT_UP, 101  
  45. wxEVT_MIDDLE_DOWN, 102  
  46. wxEVT_MIDDLE_UP, 103  
  47. wxEVT_RIGHT_DOWN, 104  
  48. wxEVT_RIGHT_UP, 105  
  49. wxEVT_MOTION, 106  
  50. wxEVT_ENTER_WINDOW, 107  
  51. wxEVT_LEAVE_WINDOW, 108  
  52. wxEVT_LEFT_DCLICK, 109  
  53. wxEVT_MIDDLE_DCLICK, 110  
  54. wxEVT_RIGHT_DCLICK, 111  
  55. wxEVT_SET_FOCUS, 112  
  56. wxEVT_KILL_FOCUS, 113  
  57. wxEVT_CHILD_FOCUS, 114  
  58. wxEVT_MOUSEWHEEL, 115  
  59.   
  60.   
  61. ·非客户区(Non-client)鼠标事件  
  62.   
  63.   
  64. wxEVT_NC_LEFT_DOWN, 200  
  65. wxEVT_NC_LEFT_UP, 201  
  66. wxEVT_NC_MIDDLE_DOWN, 202  
  67. wxEVT_NC_MIDDLE_UP, 203  
  68. wxEVT_NC_RIGHT_DOWN, 204  
  69. wxEVT_NC_RIGHT_UP, 205  
  70. wxEVT_NC_MOTION, 206  
  71. wxEVT_NC_ENTER_WINDOW, 207  
  72. wxEVT_NC_LEAVE_WINDOW, 208  
  73. wxEVT_NC_LEFT_DCLICK, 209  
  74. wxEVT_NC_MIDDLE_DCLICK, 210  
  75. wxEVT_NC_RIGHT_DCLICK, 211  
  76.   
  77.   
  78. ·字符输入事件  
  79.   
  80. wxEVT_CHAR, 212  
  81. wxEVT_CHAR_HOOK, 213  
  82. wxEVT_NAVIGATION_KEY, 214  
  83. wxEVT_KEY_DOWN, 215  
  84. wxEVT_KEY_UP, 216  
  85. #if wxUSE_HOTKEY   
  86. wxEVT_HOTKEY, 217  
  87. #endif   
  88.   
  89.   
  90. ·设置焦点(Cursor)事件  
  91.   
  92.   
  93. wxEVT_SET_CURSOR, 230  
  94.   
  95.   
  96. · 来自wxScrollBar控件和wxSlider控件的滚动事件  
  97.   
  98. wxEVT_SCROLL_TOP, 300  
  99. wxEVT_SCROLL_BOTTOM, 301  
  100. wxEVT_SCROLL_LINEUP, 302  
  101. wxEVT_SCROLL_LINEDOWN, 303  
  102. wxEVT_SCROLL_PAGEUP, 304  
  103. wxEVT_SCROLL_PAGEDOWN, 305  
  104. wxEVT_SCROLL_THUMBTRACK, 306  
  105. wxEVT_SCROLL_THUMBRELEASE, 307  
  106. wxEVT_SCROLL_CHANGED, 308  
  107.   
  108.   
  109. ·来自wxWindow的滚动事件  
  110.   
  111.   
  112. wxEVT_SCROLLWIN_TOP, 320  
  113. wxEVT_SCROLLWIN_BOTTOM, 321  
  114. wxEVT_SCROLLWIN_LINEUP, 322  
  115. wxEVT_SCROLLWIN_LINEDOWN, 323  
  116. wxEVT_SCROLLWIN_PAGEUP, 324  
  117. wxEVT_SCROLLWIN_PAGEDOWN, 325  
  118. wxEVT_SCROLLWIN_THUMBTRACK, 326  
  119. wxEVT_SCROLLWIN_THUMBRELEASE, 327  
  120.   
  121.   
  122. ·系统事件  
  123.   
  124.   
  125. wxEVT_SIZE, 400  
  126. wxEVT_MOVE, 401  
  127. wxEVT_CLOSE_WINDOW, 402  
  128. wxEVT_END_SESSION, 403  
  129. wxEVT_QUERY_END_SESSION, 404  
  130. wxEVT_ACTIVATE_APP, 405   
  131. 406..408 被用于苹果公司PowerPC上,这里没有列出。如果想查看这些事件,可去看<wx/power.h >。  
  132. wxEVT_ACTIVATE, 409  
  133. wxEVT_CREATE, 410  
  134. wxEVT_DESTROY, 411  
  135. wxEVT_SHOW, 412  
  136. wxEVT_ICONIZE, 413  
  137. wxEVT_MAXIMIZE, 414  
  138. wxEVT_MOUSE_CAPTURE_CHANGED, 415  
  139. wxEVT_MOUSE_CAPTURE_LOST, 416  
  140. wxEVT_PAINT, 417  
  141. wxEVT_ERASE_BACKGROUND, 418  
  142. wxEVT_NC_PAINT, 419  
  143. wxEVT_PAINT_ICON, 420  
  144. wxEVT_MENU_OPEN, 421  
  145. wxEVT_MENU_CLOSE, 422  
  146. wxEVT_MENU_HIGHLIGHT, 423  
  147. wxEVT_CONTEXT_MENU, 424  
  148. wxEVT_SYS_COLOUR_CHANGED, 425  
  149. wxEVT_DISPLAY_CHANGED, 426  
  150. wxEVT_SETTING_CHANGED, 427  
  151. wxEVT_QUERY_NEW_PALETTE, 428  
  152. wxEVT_PALETTE_CHANGED, 429  
  153. wxEVT_JOY_BUTTON_DOWN, 430  
  154. wxEVT_JOY_BUTTON_UP, 431  
  155. wxEVT_JOY_MOVE, 432  
  156. wxEVT_JOY_ZMOVE, 433  
  157. wxEVT_DROP_FILES, 434  
  158. wxEVT_DRAW_ITEM, 435  
  159. wxEVT_MEASURE_ITEM, 436  
  160. wxEVT_COMPARE_ITEM, 437  
  161. wxEVT_INIT_DIALOG, 438   
  162. wxEVT_IDLE, 439  
  163. wxEVT_UPDATE_UI, 440  
  164. wxEVT_SIZING, 441  
  165. wxEVT_MOVING, 442  
  166. wxEVT_HIBERNATE, 443  
  167.   
  168.   
  169. ·剪贴板事件  
  170.   
  171.   
  172. wxEVT_COMMAND_TEXT_COPY, 444  
  173. wxEVT_COMMAND_TEXT_CUT, 445  
  174. wxEVT_COMMAND_TEXT_PASTE, 446  
  175.   
  176.   
  177. ·通用命令事件(注意,一个Click事件是比button down/up优先级更高的。  
  178.   
  179.   
  180. wxEVT_COMMAND_LEFT_CLICK, 500  
  181. wxEVT_COMMAND_LEFT_DCLICK, 501  
  182. wxEVT_COMMAND_RIGHT_CLICK, 502  
  183. wxEVT_COMMAND_RIGHT_DCLICK, 503  
  184. wxEVT_COMMAND_SET_FOCUS, 504  
  185. wxEVT_COMMAND_KILL_FOCUS, 505  
  186. wxEVT_COMMAND_ENTER, 506  
  187.   
  188.   
  189. ·帮助事件  
  190.   
  191.   
  192. wxEVT_HELP, 1050  
  193. wxEVT_DETAILED_HELP, 1051  
  194.   
  195.   
  196. 以下两个事件是等价的  
  197.   
  198.   
  199. wxEVT_COMMAND_TOOL_CLICKED        wxEVT_COMMAND_MENU_SELECTED  
  200.   
  201.   
  202. 事件手柄列表  
  203. wxCommandEventHandler  
  204.   
  205. wxScrollEventHandler  
  206.   
  207. wxScrollWinEventHandler  
  208.   
  209. wxSizeEventHandler  
  210.   
  211. wxMoveEventHandler  
  212.   
  213. wxPaintEventHandler  
  214.   
  215. wxNcPaintEventHandler  
  216.   
  217. wxEraseEventHandler  
  218.   
  219. wxMouseEventHandler  
  220.   
  221. wxCharEventHandler  
  222.   
  223. wxKeyEventHandler wxCharEventHandler  
  224.   
  225. wxFocusEventHandler  
  226.   
  227. wxChildFocusEventHandler  
  228.   
  229. wxActivateEventHandler  
  230.   
  231. wxMenuEventHandler  
  232.   
  233. wxJoystickEventHandler  
  234.   
  235. wxDropFilesEventHandler  
  236.   
  237. wxInitDialogEventHandler  
  238.   
  239. wxSysColourChangedEventHandler  
  240.   
  241. wxDisplayChangedEventHandler  
  242.   
  243. wxUpdateUIEventHandler  
  244.   
  245. wxIdleEventHandler  
  246.   
  247. wxCloseEventHandler  
  248.   
  249. wxShowEventHandler  
  250.   
  251. wxIconizeEventHandler  
  252.   
  253. wxMaximizeEventHandler  
  254.   
  255. wxNavigationKeyEventHandler  
  256.   
  257. wxPaletteChangedEventHandler  
  258.   
  259. wxQueryNewPaletteEventHandler  
  260.   
  261. wxWindowCreateEventHandler  
  262.   
  263. wxWindowDestroyEventHandler  
  264.   
  265. wxSetCursorEventHandler  
  266.   
  267. wxNotifyEventHandler  
  268.   
  269. wxHelpEventHandler  
  270.   
  271. wxContextMenuEventHandler  
  272.   
  273. wxMouseCaptureChangedEventHandler  
  274.   
  275. wxMouseCaptureLostEventHandler  
  276.   
  277. wxClipboardTextEventHandler  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wxWidgets是一个开源的C++跨平台GUI工具包,能够让开发人员使用统一的代码库开发Windows、Linux和Mac等不同平台上的应用程序。本文档将介绍wxWidgets的基本概念、用法和一些实例。 1. wxWidgets的基本概念 wxWidgets中最重要的概念是控件(Widget),它是指窗口中的各种元素,如按钮、文本框、列表框等。每个控件都有一个唯一的ID,用来标识它。对控件的操作(如改变控件的值、显示或隐藏控件)要通过控件的ID来进行。 另一个重要的概念是事件(Event),它是指窗口中发生的各种动作,如用户单击按钮、移动滚动条等。当用户进行某种操作时,系统会产生一个事件,并将其发送给相应的控件。控件可以根据接收到的事件来进行相应的操作。事件处理函数是用来处理事件的回调函数,一般是在控件被创建时指定的。 2. wxWidgets的用法 使用wxWidgets开发应用程序的基本步骤是: ① 定义一个wxApp类(继承自wxApp),在该类的OnInit方法中创建主窗口(MainFrame); ② 在MainFrame类中定义各个控件和事件处理函数; ③ 在wxApp类的OnRun方法中显示主窗口,并进入消息循环,等待用户操作事件。 下面是一个简单的示例代码: ``` c++ // MyApp.h文件 class MyApp: public wxApp { public: virtual bool OnInit(); }; // MyApp.cpp文件 bool MyApp::OnInit() { wxFrame *frame = new wxFrame(NULL, wxID_ANY, "Hello wxWidgets", wxPoint(50, 50), wxSize(800, 600)); frame->Show(); return true; } IMPLEMENT_APP(MyApp); // Main.cpp文件 #include <wx/wx.h> #include "MyApp.h" wxIMPLEMENT_APP(MyApp); ``` 上述程序创建了一个名为“Hello wxWidgets”的窗口,大小为800*600。要增加控件,只需在MyApp类中的OnInit方法中添加相应的代码。 3. wxWidgets实例 以下示例程序演示了如何使用wxWidgets开发一个简单的计算器应用程序。 ``` c++ // Calculator.h文件 class Calculator: public wxFrame { public: Calculator(const wxString &title, const wxPoint &pos, const wxSize &size); private: enum { BUTTON_0 = 100, BUTTON_1, BUTTON_2, BUTTON_3, BUTTON_4, BUTTON_5, BUTTON_6, BUTTON_7, BUTTON_8, BUTTON_9, BUTTON_ADD, BUTTON_SUB, BUTTON_MUL, BUTTON_DIV, BUTTON_EQUAL, BUTTON_CLEAR }; wxString m_inputValue; void OnButtonClicked(wxCommandEvent &event); wxTextCtrl *m_textctrl; wxDECLARE_EVENT_TABLE(); }; // Calculator.cpp文件 Calculator::Calculator(const wxString &title, const wxPoint &pos, const wxSize &size) : wxFrame(NULL, wxID_ANY, title, pos, size) { wxPanel *panel = new wxPanel(this, wxID_ANY); wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL); m_textctrl = new wxTextCtrl(panel, wxID_ANY, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_RIGHT); m_textctrl->SetFont(wxFont(20, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL)); vbox->Add(m_textctrl, 0, wxEXPAND | wxTOP | wxBOTTOM, 4); wxBoxSizer *hbox1 = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *hbox2 = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *hbox3 = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *hbox4 = new wxBoxSizer(wxHORIZONTAL); hbox1->Add(new wxButton(panel, BUTTON_1, wxT("1")), 1, wxEXPAND | wxALL, 4); hbox1->Add(new wxButton(panel, BUTTON_2, wxT("2")), 1, wxEXPAND | wxALL, 4); hbox1->Add(new wxButton(panel, BUTTON_3, wxT("3")), 1, wxEXPAND | wxALL, 4); hbox1->Add(new wxButton(panel, BUTTON_ADD, wxT("+")), 1, wxEXPAND | wxALL, 4); vbox->Add(hbox1, 0, wxEXPAND); hbox2->Add(new wxButton(panel, BUTTON_4, wxT("4")), 1, wxEXPAND | wxALL, 4); hbox2->Add(new wxButton(panel, BUTTON_5, wxT("5")), 1, wxEXPAND | wxALL, 4); hbox2->Add(new wxButton(panel, BUTTON_6, wxT("6")), 1, wxEXPAND | wxALL, 4); hbox2->Add(new wxButton(panel, BUTTON_SUB, wxT("-")), 1, wxEXPAND | wxALL, 4); vbox->Add(hbox2, 0, wxEXPAND); hbox3->Add(new wxButton(panel, BUTTON_7, wxT("7")), 1, wxEXPAND | wxALL, 4); hbox3->Add(new wxButton(panel, BUTTON_8, wxT("8")), 1, wxEXPAND | wxALL, 4); hbox3->Add(new wxButton(panel, BUTTON_9, wxT("9")), 1, wxEXPAND | wxALL, 4); hbox3->Add(new wxButton(panel, BUTTON_MUL, wxT("*")), 1, wxEXPAND | wxALL, 4); vbox->Add(hbox3, 0, wxEXPAND); hbox4->Add(new wxButton(panel, BUTTON_CLEAR, wxT("C")), 1, wxEXPAND | wxALL, 4); hbox4->Add(new wxButton(panel, BUTTON_0, wxT("0")), 1, wxEXPAND | wxALL, 4); hbox4->Add(new wxButton(panel, BUTTON_EQUAL, wxT("=")), 1, wxEXPAND | wxALL, 4); hbox4->Add(new wxButton(panel, BUTTON_DIV, wxT("/")), 1, wxEXPAND | wxALL, 4); vbox->Add(hbox4, 0, wxEXPAND); panel->SetSizer(vbox); Bind(wxEVT_BUTTON, &Calculator::OnButtonClicked, this); } void Calculator::OnButtonClicked(wxCommandEvent &event) { int id = event.GetId(); wxString value = m_textctrl->GetValue(); if (id >= BUTTON_0 && id <= BUTTON_9) { // 处理数字按钮事件 wxString digit = wxString::Format(wxT("%d"), id - BUTTON_0); m_inputValue += digit; m_textctrl->SetValue(m_inputValue); } else if (id == BUTTON_ADD) { // 处理加号按钮事件 m_inputValue += wxT(" + "); m_textctrl->SetValue(m_inputValue); } else if (id == BUTTON_SUB) { // 处理减号按钮事件 m_inputValue += wxT(" - "); m_textctrl->SetValue(m_inputValue); } else if (id == BUTTON_MUL) { // 处理乘号按钮事件 m_inputValue += wxT(" * "); m_textctrl->SetValue(m_inputValue); } else if (id == BUTTON_DIV) { // 处理除号按钮事件 m_inputValue += wxT(" / "); m_textctrl->SetValue(m_inputValue); } else if (id == BUTTON_CLEAR) { // 处理清除按钮事件 m_inputValue = wxT(""); m_textctrl->SetValue(m_inputValue); } else if (id == BUTTON_EQUAL) { // 处理等号按钮事件 wxStringTokenizer tokenizer(m_inputValue, wxT(" ")); double result = 0; wxString op; while (tokenizer.HasMoreTokens()) { wxString token = tokenizer.GetNextToken(); if (token == wxT("+") || token == wxT("-") || token == wxT("*") || token == wxT("/")) { op = token; } else { double value = 0; token.ToDouble(&value); if (op.IsEmpty()) { result = value; } else if (op == wxT("+")) { result += value; } else if (op == wxT("-")) { result -= value; } else if (op == wxT("*")) { result *= value; } else if (op == wxT("/")) { result /= value; } } } m_inputValue = wxString::Format(wxT("%f"), result); m_textctrl->SetValue(m_inputValue); } } wxBEGIN_EVENT_TABLE(Calculator, wxFrame) EVT_BUTTON(wxID_ANY, Calculator::OnButtonClicked) wxEND_EVENT_TABLE() // MyApp.h文件 class MyApp: public wxApp { public: virtual bool OnInit(); }; IMPLEMENT_APP(MyApp); // MyApp.cpp文件 bool MyApp::OnInit() { Calculator *frame = new Calculator("Calculator", wxPoint(50, 50), wxSize(320, 240)); frame->Show(); return true; } ``` 上述程序创建了一个简单的计算器应用程序。通过继承wxFrame类并添加各种控件,可以实现各种GUI应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值