看到了别人发的帖子,我想知道这个声明有什么用啊?DECLARE_DYNAMIC(MainDlg)
是不是说为了run服务的啊?

解决方案 »

  1.   

    动态创建的时候有用,这是一个宏
    #define DECLARE_DYNAMIC(class_name) \
    public: \
    static const AFX_DATA CRuntimeClass class##class_name; \
    virtual CRuntimeClass* GetRuntimeClass() const; \
    这样从文件中读取一个类的名字就可以动态创建一个类对象,CRuntimeClass这个结构体记录了类的信息,DECLARE_DYNAMIC(class_name)就是用来声明这个结构体,然后使用IMPLEMENT_DYNAMIC(class_name,base_class_name)宏进行填充。
      

  2.   

    http://blog.csdn.net/sunjd2001/archive/2007/05/15/1609248.aspx
      

  3.   

    有了这个,你就可以用
    ptr->IsKindOf(RUNTIME_CLASS(MyClass))来判断一个指针是不是属于你这个类的实例