2个回答
展开全部
文档/视图应用程序中的类和可视化特性都是由一个文档模板类组织起来进行管理的,单文档使用的文档模板类CSingleDocTemplate类的一个实例在CSDICoinApp::InitInstance函数中生成并使用。
BOOL CSDICoinApp::InitInstance()
{ ……
CSingleDocTemplate* pDocTemplate;
pDocTemplate=new CSingleDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CSDICoinDoc),
RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(CSDICoinView));
AddDocTemplate(pDocTemplate);
CSingleDocTemplate对象被创建,传入4个参数,参数1为资源ID IDR_MAINFRAME,标识了4个独立的资源:应用程序图标、菜单、工具栏、加速键表。剩余3个参数都只指向运行时刻(runtime)的类信息的指针,分别是文档类、框架类、视图类。宏RUMTIME_CLASS用于生成这些指针,AppWizard通过引入宏DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE,包含对动态创建这些类的支持
文档、框架、视图对象本身并不在此时创建,以上只是根据装入资源和分配文档、视图及框架类所必须的信息,来初始化CSingleDocTemplate对象,文档模板就是通常所说的类工厂
文档模板类是类工厂的一个实例,类工厂是一个用来定义如何实例化其他类的一个类,知道如何生成应用程序中指定的类
文档模板本身保存在应用程序类中,通过对AddDocTemplate的调用,在CWinApp类中注册新建立的文档模板对象
CWinApp类保留CSingleDocTemplate的对象,直到将自身销毁,CWinApp类自动清理分配给文档模板的全部内存空间
BOOL CSDICoinApp::InitInstance()
{ ……
CSingleDocTemplate* pDocTemplate;
pDocTemplate=new CSingleDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CSDICoinDoc),
RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(CSDICoinView));
AddDocTemplate(pDocTemplate);
CSingleDocTemplate对象被创建,传入4个参数,参数1为资源ID IDR_MAINFRAME,标识了4个独立的资源:应用程序图标、菜单、工具栏、加速键表。剩余3个参数都只指向运行时刻(runtime)的类信息的指针,分别是文档类、框架类、视图类。宏RUMTIME_CLASS用于生成这些指针,AppWizard通过引入宏DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE,包含对动态创建这些类的支持
文档、框架、视图对象本身并不在此时创建,以上只是根据装入资源和分配文档、视图及框架类所必须的信息,来初始化CSingleDocTemplate对象,文档模板就是通常所说的类工厂
文档模板类是类工厂的一个实例,类工厂是一个用来定义如何实例化其他类的一个类,知道如何生成应用程序中指定的类
文档模板本身保存在应用程序类中,通过对AddDocTemplate的调用,在CWinApp类中注册新建立的文档模板对象
CWinApp类保留CSingleDocTemplate的对象,直到将自身销毁,CWinApp类自动清理分配给文档模板的全部内存空间
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询