源码是这样:
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CCHUNDoc),
RUNTIME_CLASS(CMainFrame),       // main SDI frame window
RUNTIME_CLASS(CCHUNView));
AddDocTemplate(pDocTemplate);请问RUNTIME_CLASS是什么,文档模板构建器是怎样工作的?
是怎么把文档,视图,框架窗口联系在一起的 ?

解决方案 »

  1.   

    这个过程一句两句话也说不清楚,建议兄台看一看《深入浅出MFC》的相关章节,上面讲的很明白
      

  2.   

    RUNTIME_CLASS是一个宏,用于通过类名获取运行时类的结构,它返回一个指针,该指针指向指定类名的CRuntimeClass类的结构。
    例如:
    CRuntimeClass* prt = RUNTIME_CLASS( CAge );//类名为CAge的类通过三个CRuntimeClass* 指针赋初值, new 一个文档模板
      

  3.   

    通过这组宏DECLARE_DYNAMIC/DECLARE_DYNCREATE 的作用比如在,类声明中用DECLARE_DYNCREATE(CCHUNDoc)
    在实现文件中用IMPLEMENT_DYNCREATE(CCHUNDoc, CDocument)CRuntimeClass对象(RUNTIME_CLASS返回指针所指向的对象)构成了“类别型录网”,这个网中包含类的上下关系和类的信息所以,文档模板能够有机地管理那三个类生成的对象(CCHUNDoc、CMainFrame、CCHUNView)。