DECLARE_DYNAMIC是MFC最基本的精髓,即建立一张消息映射表。DECLARE_DYNCREATE包含了DECLARE_DYNAMIC,但更进一步,使类的永久化成为可能。DECLARE_SERIAL包含了DECLARE_DYNCREATE,但把序列化悄悄地放进了宏里了。我可能对这些宏的理解不够准确,请大家指教。但我问的问题是涉及DECLARE_SERIAL和DECLARE_DYNCREATE关系的,我看有了DECLARE_DYNCREATE就已经可以序列化了,但是要自己添加序列化的函数,而且如果愿意的话还要重载<<>>。但用《深入浅出MFC》的话说DECLARE_SERIAL是为了将<<和>>2个运算符重载,还要让Serialize函数神不知鬼不觉地放入类声明中。 |