wx利用两个宏实现了几乎所有以wx开头的窗口类的反射机制:
DECLARE_DYNAMIC_CLASS
IMPLEMENT_DYNAMIC_CLASS
当一个类想借助于wx实现的dynamic_class的机制,必须得继承于wxObject或者是它的子类。有了这个前提条件之后,在你的类中,你只需要这样操作:
1. 在类的声明中,写下:
DECLARE_DYNAMIC_CLASS($your_class_name);
2. 在类的实现文件中,写下:
IMPLEMENT_DYNAMIC_CLASS($your_class_name, $base_class_from_wxObject);
那么这2个宏到底帮我们做了些什么事情呢,我们来展开那2个宏来看看:
首先是
DECLARE_DYNAMIC_CLASS($your_class_name)
#define DECLARE_ABSTRACT_CLASS (name) \
public: \
static wxClassInfo ms_classInfo;