(2)在应用程序中增加菜单响应: void CWinApp::OnFileOpen() { POSITION P = GetFirstDocTemplatePosition(); CFileDialog Dlg(true); if(Dlg.DoModal()= =IDOK) { CString FileName = Dlg.GetPathName(); CString FileExt = Dlg.GetFileExt(); if((FileExt=="First")||(FileExt=="first")||(FileExt=="FIRST")) { while(P!=NULL) { CDocTemplate* curTemplate=GetNextDocTemplate(P); CString str; curTemplate->GetDocString(str,CDocTemplate::docName); if(str= =_T("First")) { curTemplate->OpenDocumentFile(FileName); return; } } } else if((FileExt = = "Second") || (FileExt = = "second")||(FileExt= =SECOND")) { while(P!=NULL) { CDocTemplate* curTemplate=GetNextDocTemplate(P); CString str; curTemplate->GetDocString(str,CDocTemplate::docName); if(str==_T("Second")) { curTemplate->OpenDocumentFile(FileName); return; } } }else { // may not be supported AfxMessageBox("你所选的文件类型本程序不支持!"); return; } } } 这里把文件名的后缀作为分支条件,如果是First类文件,则先获得关于First类文件的文档模板,然后调用CDocTemplate::OpenDocumentFile (lpszFileName)函数打开此文档。此函数将依次生成新文档,新框架,并在框架中创建视,最后向框架中所有的视发送初始化消息,使其显示在屏幕上。如果是Second类文件,操作类似。
当然,我们还可以在程序的任何位置实现此操作:通过全局函数AfxGetApp 获得应用程序对象指针,从而获得相应的文档模板指针。  
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |