试着使用了一下wxWidgets库,对wxWidgets调用XRC资源很感兴趣,将在WINDOWS下使用XRC资源的过程整理出来。
1 先编译出wxWidgets库的Lib,如果是VC,直接使用build\msw目录下对应版本的dsw文件。
2 创建自己的工程,用VC创建一个WIN32版本的程序,添加相应的CPP文件和H文件。
2 -1 一个最简单的程序应该包含一个主CPP文件,在其中定义自己的继承自wxApp的APP类,并重载OnInit虚函数。在OnInit函数中处理APP初始化过程。如果要使用XRC资源,要调用wxXmlResource::Get()->InitAllHandlers();初始化所有的XRC资源Handler,再调用wxXmlResource::Get()->LoadAllFiles("rc")加载指定目录下的所有XRC文件。XRC资源准备好之后,就可以创建自己的Frame窗口框架了。
2 -2 创建自己的Frame窗口,定义自己的Frame类,继承自wxFrame类,在类声明中要包含DECLARE_EVENT_TABLE()宏,来定义事件。在实现文件中定义BEGIN_EVENT_TABLE(x, wxFrame)和END_EVENT_TABLE()宏定义对,在宏定义对中添加EVT_BUTTON、EVT_MENU等宏定义来关联XRC资源中的控件ID与处理按键、菜单等事件。如EVT_BUTTON(XRCID("m_button1"), MyFrame::OnButton1)来关联XRC资源中的m_button1按键和MyFrame类中的OnButton1函数,OnButton1函数的形式为void OnButton1(wxCommandEvent& event);
2 -3 其他窗口的创建和事件响应自己根据需要进行添加。
3