本节将会手动编写创建一个最简单的wxWidgets程序,该程序不做任何事情,只是一个窗体。写的比较细,包括部分源码及运行原理,希望可以彻底理解!
1. Frame和Dialog的区别
一般情况下,有菜单工具栏的是Frame,没有的是Dialog。当然这是一般情况,因为你完全可以把Dialog做成Frame样子。Frame一般用做主窗体,可以有菜单、工具栏、状态栏。Dialog用做模式窗口,可以返回不同的值,比如打开个设置对话框、确认对话框等等。用一个图片来说明:
wxWidgets(以下简称wx)程序必需包涵一个顶级窗体,而wx只有两个顶级窗体就是wxFrame和wxDialog,所以我们和程序里面必需有一个wxFrame或是wxDialog。
2. 程序入口
以我们的经验,C/C++的入口就是main函数。wx中入口函数当然也是main,只是main函数已经在wx库中被定义好了,不需要再重新定义了。可以从源码wx/app.h中找到main函数被定义在宏wxIMPLEMENT_WXWIN_MAIN中:
#define wxIMPLEMENT_WXWIN_MAIN_CONSOLE \
int main(int argc, char **argv) \
{ \
wxDISABLE_DEBUG_SUPPORT(); \
\
return wxEntry(argc, argv);