frame->seticon(wxicon(mainfrmicon));
frame->show(true);
settopwindow(frame);
return true;
}
这样一个简单的编辑器就写完了,用不着我多做解释,看代码注释应该就可以懂了。其中就是菜单响应事件这块有些需要注意。它用的是事件表(在wxwindows的早期版本中这是通过使用回调函数或者通过重载虚拟函数来实现的,wxwindows2.0后改为使用事件表来实现。)。要处理事件的每个类都需要声明一个事件表。mainfrm.h代码中宏declare_event_table用来完成这项工作。每一个事件都必须有一个已经实现了的方法,每个方法都有一个参数用来包含事件的信息,从菜单获得的事件是一个wxcommandevent类型的数据。而事件表我们放在实现文件中的,wxwindows通过一些宏来帮助的完成事件表的声明。宏begin_event在事件表声明的开始处使用,因为在一个程序中可能不止一个事件表,要将事件处理过程相关的类名传递给宏。将一个方法与事件关联要使用evt_menu宏。这个宏需要菜单id与事件名。在事件表的最后用宏end_event_table作结束标记。这样我们就可以处理菜单事件了。