MFC多文档MDI_"打开文件"默认后缀名修改,根据需要添加
来源:互联网 发布:linux系统驱动开发 编辑:程序博客网 时间:2024/06/07 01:15
参考:http://blog.csdn.net/segen_jaa/article/details/8489917
应用背景:
我用的是MDI框架,需要调用同事给的dll,才能确定本程序解析何种格式的文件。如他给了dll1,dll2,dll3,dll4,后缀分别是.format1,.format2,.format3,.format4。以后还可能会有(dll5,format5),(dll6,format6)
因此在MDI加载文档模板之前就要获得全部后缀名,然后动态的传给MDI。
首先,需要修改打开文件的后缀名。需要重载CMultiDocTemplate,参考文章的后缀也是在主程序中写好的,不是我想要的,
很简单,在继承类中多加一个参数 char *suffix,
具体实现如下:
#pragma once#include "afxwin.h"class CMultiDocTemplateSuffixEx :public CMultiDocTemplate{CString m_strSuffix;public:CMultiDocTemplateSuffixEx(char *suffix,UINT nIDResource, CRuntimeClass* pDocClass,CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass):\CMultiDocTemplate( nIDResource, pDocClass, pFrameClass, pViewClass ){m_strSuffix.Format("%s",suffix);}virtual BOOL GetDocString(CString& rString, enum DocStringIndex index) const{if(index == CDocTemplate::filterExt){rString = "."+m_strSuffix;}else if( index == CDocTemplate::fileNewName || index == CDocTemplate::filterName ){rString = m_strSuffix+"(*."+m_strSuffix+")";}else{__super::GetDocString(rString,index);}return TRUE;};};使用:
CMultiDocTemplate *pDocTemplate0;char *curSuffix[]={"format1","format2","format3"};for(int i=0; i<3; i++){pDocTemplate0 = new CMultiDocTemplateSuffixEx(curSuffix[i],IDR_MAINFRAME,RUNTIME_CLASS(CTestDoc),RUNTIME_CLASS(CChildFrm),RUNTIME_CLASS(CTestView));AddDocTemplate(pDocTemplate0);}}
- MFC多文档MDI_"打开文件"默认后缀名修改,根据需要添加
- MFC单文档打开文件默认后缀名修改
- MFC单文档打开文件默认后缀名修改
- MFC文件打开格式,MFC默认打开文档后缀(支持打开多图像格式)
- MFC多文档默认打开某一个文档
- MFC单文档应用程序默认打开一个文件
- 批量添加 或修改文件后缀名
- MFC在单文档程序中添加最近打开文件.
- opencms默认后缀名修改
- 文件后缀名添加多个.
- MFC单文档打开文件
- MFC单文档打开文件
- MFC单文档打开文件
- MFC单文档打开文件
- java根据文件的后缀名在浏览器中选择打开程序打开
- 同时修改多个文件后缀名
- 批量修改文件后缀名
- 批量修改文件后缀名
- 一个简单的旋转动画
- 白话经典算法系列之五 归并排序的实现
- 配置LuaRocks
- poj1325Machine Schedule(二分匹配)
- 使用DNSPod做DNS解析图文教程
- MFC多文档MDI_"打开文件"默认后缀名修改,根据需要添加
- 关于spring的p标签
- android 实现类似qq表情
- 找工作
- 插件管理框架 for Delphi
- poj 1056 immediate decodability
- PDB 调试
- Packaging Programs in JAR Files
- MySQL Cluster初步测试结果汇总图示报告 --> 用mysqlslap与sysbench进行测试