【wxWidgets】wxWidgets特点概览

来源:互联网 发布:出奇制胜高考英语软件 编辑:程序博客网 时间:2024/06/06 17:01

【wxWidgets】wxWidgets特点概览

tkorays(http://blog.csdn.net/tkorays)

坚持。


        这里简单介绍下wxWidgets程序的一些特点,这对如何编写一个使用wxWidgets的程序是很有帮助的。


        要创建一个wxWidgets程序,必须要写一个继承自wxApp的类,并且实现wxApp::OnInit方法。这里的入口函数不是main,而是用wxApp::OnInit。


        然后,创建一个顶层窗口,这个窗口可以继承自wxFrame或者wxDialog,每个窗口里面可以包含很多的其他窗口或空间,比如wxPanel、wxSplitterWindow。一个Frame可以包含一个菜单栏(wxMenuBar)、一个工具栏(wxToolBar)、一个状态栏(wxStatusBar)、以及图标(wxIcon)。


        用户不会直接在窗口上绘图,而是通过设备上下文(device context,DC)来绘制。wxDC是wxClientDC、wxPaintDC、wxMemoryDC、wxPostScriptDC、wxMetafileDC以及wxPrinterDC的基类。当使用的函数参数为wxDC时,你可以传入以上任意一个子类,他们具有和父类相同的接口。


        wxWidgets里面的事件实现可以通过DECLARE_EVENT_TABLE宏来实现(当然也可以直接通过一些函数来实现)。你可以在一个类的声明里面像添加成员函数一样添加一句DECLARE_EVENT_TABLE(),然后再在实现中以BEGIN_EVENT_TABLE开头,以END_EVENT_TABLE结尾,中间添加一些事件。其实本质上,DECLARE_EVENT_TABLE是给这个类添加了一个事件处理函数,而BEGIN_EVENT_TABLE和END_EVENT_TABLE以及中间的语句即这个函数的实现。

下面这是类的定义:

/// @file mainwindow.hclass MainWindow : public wxFrame {public:private:void OnExit(wxCommandEvent& event);void OnAbout(wxCommandEvent& event);void OnTimer(wxTimerEvent& event);void OnClose(wxCloseEvent& event);wxDECLARE_EVENT_TABLE();};

类的实现里面添加这些:

wxBEGIN_EVENT_TABLE(MainWindow,wxFrame)EVT_TOOL(MainWindow::ID_TOOL_EXIT,MainWindow::OnExit)EVT_TOOL(MainWindow::ID_TOOL_START,MainWindow::OnStart)EVT_CLOSE(MainWindow::OnClose)wxEND_EVENT_TABLE()
       



0 0
原创粉丝点击