if (context.m_pnewviewclass == null)
trace0("warning: creating frame with no default view.\n");
if (!pframe->loadframe(m_nidresource,
ws_overlappedwindow | fws_addtotitle, // default frame styles
null, &context))
{
……
return null;
}
return pframe;
}
总结:在模板里使用自己的数据结构维护着自己拥有的文档对象,并提供了getfirstdocposition和getnextdoc函数实现对这些文档的对象的访问。所以,在一个拥有多个文档模板的应用程序中,即使每个模板使用了相同类型的文档类,每个新建或打开的文档在这些文档模板之间也不是共享的。
(三)文档与视图之间的联系
在视图类有一个保护数据成员:cdocument* m_pdocument;,这个文档指针指向视图对象所属的文档,视图里常用的函数getdocument()就是返回的这个指针;在文档类有一个保护数据成员:cdocument* m_viewlist;,它保存的是所有正在显示该文档的视图的指针,通过cdocument的成员函数getfirstviewposition和getnextview函数可以实现对这些视图的访问。