下载此文档

自定义MFC打开保存对话框的扩展名.doc


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
这里的顶目名称是D-,。要让打开/保存对话框支持多个扩展名,TYPE字段:STRINGTABLEBEGINIDR_MAINFRAME"D-"TYPE"\\nD-\nD-Files(*.dtn;*.csv\;.csv\.Document\nD-.Document"END这样做的不足是,文件虽然可以有多个扩展名,但仍然只分为两类:"D-Files"和"AllFiles"。要想更细致地分类,需要重写相关的虚函数,具体做法不唯一,我觉得比较好的一种是重写CDocManager::DoPromptFileName。下面的文字有些凌乱,因为它的内容是按照我的探索过程组织的。首先考虑打开对话框。第一步是要弄清,打开对话框是什么时候(在哪)弹出来的?默认情况下,App调用CWinApp::OnFileOpen方法处理FileOpen事件:MAND(ID_FILE_OPEN,&CWinApp::OnFileOpenCWinApp::OnFileOpen又调用CDocManager::OnFileOpen处理FileOpen事件:voidCWinApp::OnFileOpen({ENSURE(m_pDocManager!=NULL;m_pDocManager->OnFileOpen(;}CDocManager::OnFileOpen显示对话框与用户交互,然后调用CWinApp::OpenDocumentFile方法:voidCDocManager::OnFileOpen({//prompttheuser(withalldocumenttemplatesCStringnewName;if(!DoPromptFileName(newName,AFX_IDS_OPENFILE,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,TRUE,NULLreturn;//opencancelledAfxGetApp(->OpenDocumentFile(newName;//ifreturnsNULL,theuserhasalreadybeenalerted}显然,一种可能的解决办法是绕过CWinApp和CDocManager,App::OnFileOpen方法中显示自定义对话框,然后调用CWinApp::OpenDocumentFile方法。MAND(ID_FILE_OPEN,&App::App::OnFileOpen({LPCTSTRszFilter=L"文件(*.dtn|*.dtn|CSV文件(*.csv|*.csv|所有文件(*.*|*.*||";CFileDialogoFileDlg(TRUE,L".dtn",NULL,4|2,szFilter;if((==IDOKOpenDocumentFile((;//App不需要重写CWinApp::OpenDocumentFile方法}现在考虑保存对话框。第一步仍然是弄清,保存对话框是什么时候(在哪)弹出来的?分发消息时,调用了CDocument::DoFileSave虚方法:BOOLCDocument::DoFileSave({DWORDdwAttrib=GetFileAttributes(m_strPa

自定义MFC打开保存对话框的扩展名 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小21 KB
  • 时间2019-11-09