• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            MFC多文檔MDI_"打開文件"默認(rèn)后綴名修改,根據(jù)需要添加

            參考:http://blog.csdn.net/segen_jaa/article/details/8489917

            應(yīng)用背景:

            我用的是MDI框架,需要調(diào)用同事給的dll,才能確定本程序解析何種格式的文件。如他給了dll1,dll2,dll3,dll4,后綴分別是.format1,.format2,.format3,.format4。以后還可能會(huì)有(dll5,format5),(dll6,format6)

            因此在MDI加載文檔模板之前就要獲得全部后綴名,然后動(dòng)態(tài)的傳給MDI。

            首先,需要修改打開文件的后綴名。需要重載CMultiDocTemplate,參考文章的后綴也是在主程序中寫好的,不是我想要的,

            很簡單,在繼承類中多加一個(gè)參數(shù) char *suffix,

            具體實(shí)現(xiàn)如下:

            [cpp] view plain copy

            1. #pragma once
            2. #include "afxwin.h"
            3. class CMultiDocTemplateSuffixEx :   public CMultiDocTemplate  
            4. {  
            5.     CString m_strSuffix;  
            6. public:  
            7.     CMultiDocTemplateSuffixEx(char *suffix,UINT nIDResource, CRuntimeClass* pDocClass,  
            8.         CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass):\  
            9.         CMultiDocTemplate( nIDResource, pDocClass, pFrameClass, pViewClass )  
            10.     {  
            11.         m_strSuffix.Format("%s",suffix);  
            12.     }  
            13. virtual BOOL GetDocString(CString& rString, enum DocStringIndex index) const
            14.     {  
            15. if(index == CDocTemplate::filterExt)  
            16.         {  
            17.             rString = "."+m_strSuffix;  
            18.         }  
            19. else if( index == CDocTemplate::fileNewName || index == CDocTemplate::filterName )  
            20.         {  
            21.             rString = m_strSuffix+"(*."+m_strSuffix+")";        }  
            22. else
            23.         {  
            24.             __super::GetDocString(rString,index);  
            25.         }  
            26. return TRUE;  
            27.     };  
            28. }; 

            使用:

            [cpp] view plain copy

            1. CMultiDocTemplate *pDocTemplate0;  
            2. char *curSuffix[]={"format1","format2","format3"};  
            3. for(int i=0; i<3; i++)  
            4.     {  
            5.         pDocTemplate0 = new CMultiDocTemplateSuffixEx  
            6.             (curSuffix[i],IDR_MAINFRAME,  
            7.             RUNTIME_CLASS(CTestDoc),  
            8.             RUNTIME_CLASS(CChildFrm),  
            9.             RUNTIME_CLASS(CTestView));  
            10.         AddDocTemplate(pDocTemplate0);  
            11.     }  

            posted on 2017-02-13 13:03 FongLuo 閱讀(932) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

            <2008年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            常用鏈接

            留言簿

            隨筆分類(11)

            隨筆檔案(79)

            文章檔案(1)

            收藏夾(38)

            學(xué)習(xí)網(wǎng)站

            一般網(wǎng)站

            最新隨筆

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            久久久久久久久久久久久久| 免费精品久久天干天干| 狠狠色噜噜狠狠狠狠狠色综合久久| 伊人热热久久原色播放www| 伊人久久大香线蕉综合影院首页| 亚洲AV无码1区2区久久| 国产激情久久久久影院老熟女| 国产精品久久久久久久app | 蜜桃麻豆WWW久久囤产精品| 亚洲级αV无码毛片久久精品| 国产精品成人久久久久久久| 精品久久久久久国产| 久久久久九国产精品| 国产V亚洲V天堂无码久久久| 欧美久久久久久精选9999| 日日狠狠久久偷偷色综合96蜜桃| 青青草原精品99久久精品66| 久久精品亚洲AV久久久无码| 亚洲综合婷婷久久| 好久久免费视频高清| 99久久国产精品免费一区二区| 99久久免费只有精品国产| 国产精品久久久久9999| 久久精品一本到99热免费| 无码人妻久久久一区二区三区| 久久免费观看视频| 精品无码久久久久久久久久 | 久久精品综合一区二区三区| 久久棈精品久久久久久噜噜| 波多野结衣AV无码久久一区| 综合久久一区二区三区 | 久久精品国产亚洲AV香蕉| 久久精品成人| 久久久精品人妻无码专区不卡| 成人亚洲欧美久久久久| 91精品国产综合久久香蕉 | 99久久无色码中文字幕人妻| 午夜精品久久久内射近拍高清| 欧美久久亚洲精品| 久久99九九国产免费看小说| 亚洲精品乱码久久久久久自慰|