• 吴显示
    了解作者
  • Visual C++
    开发工具
  • 61KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 20
    下载次数
  • 2005-09-07 05:01
    上传日期
用ini文件实现最近文件MRU   这样一个用ini文件管理的最近文件类就做好了。使用时,需要根据程序所在路径设置ini文件路径名m_IniFileName,之后调用该类中的函数管理最近文件。   详细用法可参考示例程序。
20050805005748_main306.zip
  • main306
  • MruFileTest
  • Release
  • MruFileTest.exe
    40KB
  • res
  • MruFileTest.rc2
    403B
  • MruFileTestDoc.ico
    1.1KB
  • MruFileTest.ico
    1.1KB
  • Toolbar.bmp
    1.1KB
  • MruFileTestView.cpp
    7.4KB
  • MruFile.cpp
    3.2KB
  • MruFileTest.h
    1.4KB
  • MruFileTest.clw
    2.6KB
  • MruFileTest.dsw
    545B
  • MruFileTest.cpp
    4.4KB
  • MruFileTest.dsp
    4.7KB
  • StdAfx.cpp
    213B
  • StdAfx.h
    1KB
  • MainFrm.h
    1.5KB
  • resource.h
    971B
  • MruFileTestDoc.h
    1.5KB
  • MruFileTest.rc
    11.8KB
  • MainFrm.cpp
    2.5KB
  • MruFile.h
    878B
  • MruFileTestView.h
    2.6KB
  • MruFileTestDoc.cpp
    1.8KB
  • 用ini文件实现最近文件MRU.files
  • main_02.gif
    135B
  • main_01.gif
    1.2KB
  • type.css
    773B
  • black.GIF
    826B
  • dabao.jpg
    1KB
  • f3.gif
    1KB
  • main_03.gif
    1.4KB
  • icon1.gif
    579B
  • block.gif
    43B
  • pic_002.gif
    1.5KB
  • fl.gif
    15.5KB
  • f2.gif
    1KB
  • 用ini文件实现最近文件MRU.htm
    20.8KB
  • www.pudn.com.txt
    218B
内容介绍
// MruFileTestView.cpp : implementation of the CMruFileTestView class // #include "stdafx.h" #include "MruFileTest.h" #include "MruFileTestDoc.h" #include "MruFileTestView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMruFileTestView IMPLEMENT_DYNCREATE(CMruFileTestView, CFormView) BEGIN_MESSAGE_MAP(CMruFileTestView, CFormView) //{{AFX_MSG_MAP(CMruFileTestView) ON_COMMAND(ID_FILE_NEW, OnFileNew) ON_COMMAND(ID_FILE_OPEN, OnFileOpen) ON_COMMAND(ID_FILE_SAVE, OnFileSave) ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs) ON_EN_CHANGE(IDC_TEXTEDIT, OnChangeTextedit) ON_COMMAND(ID_MRU1, OnMru1) ON_COMMAND(ID_MRU2, OnMru2) ON_COMMAND(ID_MRU3, OnMru3) ON_COMMAND(ID_MRU4, OnMru4) ON_COMMAND(ID_MRU_CLR, OnMruClr) ON_UPDATE_COMMAND_UI(ID_MRU_CLR, OnUpdateMruClr) ON_COMMAND(ID_EDIT_CUT, OnEditCut) ON_COMMAND(ID_EDIT_COPY, OnEditCopy) ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMruFileTestView construction/destruction CMruFileTestView::CMruFileTestView() : CFormView(CMruFileTestView::IDD) { //{{AFX_DATA_INIT(CMruFileTestView) m_strText = _T(""); //}}AFX_DATA_INIT // TODO: add construction code here m_PathName = _T(""); //打开的文件路径名 m_FileName = _T(""); //打开的文件名 b_ModifiedFlag = false; //文件修改标志 b_SelFlag = false; //选择标志 } CMruFileTestView::~CMruFileTestView() { } void CMruFileTestView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMruFileTestView) DDX_Control(pDX, IDC_TEXTEDIT, m_TextEdit); DDX_Text(pDX, IDC_TEXTEDIT, m_strText); //}}AFX_DATA_MAP } BOOL CMruFileTestView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CFormView::PreCreateWindow(cs); } void CMruFileTestView::OnInitialUpdate() { CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); CMruFileTestApp* app = (CMruFileTestApp *)AfxGetApp(); //应用程序指针 m_CMruFile.m_IniFileName = app->m_exePath+_T("MruFile.ini"); //设置ini文件名 m_CMruFile.ReadMru(); //读取ini文件中的最近文件 } ///////////////////////////////////////////////////////////////////////////// // CMruFileTestView diagnostics #ifdef _DEBUG void CMruFileTestView::AssertValid() const { CFormView::AssertValid(); } void CMruFileTestView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } CMruFileTestDoc* CMruFileTestView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMruFileTestDoc))); return (CMruFileTestDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMruFileTestView message handlers //文件内容装入Edit控件 void CMruFileTestView::LoadFile(LPCTSTR PathName) { CFile file; //构造一个CFile类的对象 if( file.Open( PathName, CFile::modeRead )==0 ) //以读方式打开文件 return; int len = file.GetLength(); //求文件长度 m_strText.Empty(); file.Read( m_strText.GetBuffer(len), len ); m_strText.ReleaseBuffer(); file.Close(); //关闭文件 UpdateData( false ); } //保存编辑框内容到文件 void CMruFileTestView::SaveFile(LPCTSTR PathName) { UpdateData( true ); CFile file; if( file.Open( PathName, CFile::modeCreate | CFile::modeWrite )==0 ) //新建并以写方式打开文件 return; file.Write( (LPCTSTR)m_strText, m_strText.GetLength() ); //把字符串内容写入文件 file.Close(); //关闭文件 } //新建文件 void CMruFileTestView::OnFileNew() { if( b_ModifiedFlag ) //检查修改标志 { int t = ::MessageBox( NULL, m_FileName+"的文字已经改变,要存盘吗?", "警告", MB_YESNOCANCEL | MB_ICONWARNING ); if( t == 0 || t == IDCANCEL ) return; if( t == IDYES ) OnFileSave(); //调用保存 } m_TextEdit.SetWindowText( _T("") ); //清空编辑框 b_ModifiedFlag = false; AfxGetMainWnd()->SetWindowText( _T("未命名") ); //修改窗口标题 } //打开文件 void CMruFileTestView::OnFileOpen() { if( b_ModifiedFlag ) //检查修改标志 { int t = ::MessageBox( NULL, m_FileName+"的文字已经改变,要存盘吗?", "警告", MB_YESNOCANCEL | MB_ICONWARNING ); if( t == 0 || t == IDCANCEL ) return; if( t == IDYES ) OnFileSave(); //调用保存 } CString sFilter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"; //限定文件类型为txt文件 CFileDialog m_Dlg( TRUE, "", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, (LPCTSTR)sFilter, NULL ); //定制打开文件对话框 if( m_Dlg.DoModal() == IDOK ) //弹出打开文件对话框 { m_PathName = m_Dlg.GetPathName(); //获取文件路径名 m_FileName = m_Dlg.GetFileName(); //获取文件名 LoadFile( m_PathName ); //打开文件并装入编辑控件 b_ModifiedFlag = false; //文件未修改过 m_CMruFile.AddMru( m_PathName ); //添加到最近文件菜单 AfxGetMainWnd()->SetWindowText( m_FileName ); //修改窗口标题 } } //保存文件 void CMruFileTestView::OnFileSave() { if( b_ModifiedFlag ) //检查修改标志 { if( m_FileName.IsEmpty() ) //没有文件名 { OnFileSaveAs(); } else { SaveFile( m_PathName ); //编辑控件内容装入文件 } b_ModifiedFlag = false; } } //另存为 void CMruFileTestView::OnFileSaveAs() { CString sFilter = "文本文件(*.txt)|所有文件(*.*)|*.*||"; CFileDialog m_Dlg( FALSE, "txt", m_FileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, (LPCTSTR)sFilter,NULL ); if( m_Dlg.DoModal() == IDOK ) //弹出另存为对话框 { m_PathName=m_Dlg.GetPathName(); //获取文件路径名 m_FileName=m_Dlg.GetFileName(); //获取文件名 SaveFile( m_PathName ); //编辑控件内容装入文件 m_CMruFile.AddMru( m_PathName ); //添加到最近文件菜单 b_ModifiedFlag = false; AfxGetMainWnd()->SetWindowText( m_FileName ); //修改窗口标题 } } //编辑控件内容改变 void CMruFileTestView::OnChangeTextedit() { b_ModifiedFlag = true; } //打开最近文件 void CMruFileTestView::OpenMruFile(int nMru) { if( b_ModifiedFlag ) //检查修改标志 { int t = ::MessageBox( NULL, m_FileName+"的文字已经改变,要存盘吗?", "警告", MB_YESNOCANCEL | MB_ICONWARNING ); if( t == 0 || t == IDCANCEL ) return; if( t == IDYES ) OnFileSave(); //调用保存 } m_PathName = m_CMruFile.m_PathName[nMru]; int i=0, j=0; while( i<m_PathName.GetLength() ) { if( m_PathName[i]=='\\' ) j = i; i++; } m_FileName = m_PathName.Mid( j+1 ); //分离文件名 LoadFile( m_PathName ); //打开文件并装入编辑控件 b_ModifiedFlag = false; //文件未修改过 m_CMruFile.AddMru( m_PathName ); //添加到最近文件菜单 AfxGetMainWnd()->SetWindowText( m_FileName ); //修改窗口标题 } void CMruFileTestView::OnMru1() { OpenMruFile(0); } void CMruFileTestView::OnMru2() { OpenMruFile(1); } void CMruFileTestView::OnMru3() { OpenMruFile(2); } void CMruFileTestView::OnMru4() { OpenMruFile(3); } //清除最近文件 void CMruFileTestView::OnMruClr() { m_CMruFile.ClearMru(); } void CMruFileTestView::OnUpdateMruClr(CCmdUI* pCmdUI) { pCmdUI->Enable( m_CMruFile.m_CurNum ); } //剪切 void CMruFileTestView::OnEditCut() { m_TextEdit.Cut(); } //复制 void CMruFileTestView::OnEditCopy() { m_TextEdit.Copy(); } //粘贴 void CMruFileTestView::OnEditPaste() { m_TextEdit.Paste(); }
评论
    相关推荐
    • Seeddms:SI - 文件管理
      打开文件languages/your_lang/lang.inc并翻译它 打开帮助文件languages/your_lang/help.htm并翻译它 如果您看到一些错误或未翻译的消息: 打开文件languages/your_lang/lang.inc 搜索错误信息并翻译它们 如果您有...
    • 操作xml,ini文件案例(java)
      inieditor-r2.jar自己找了网上没有具体的应用案例,不过你不用发愁啦,我已经做了个demo测试java操作ini啦,只需要10行代码,自己研究的java操作xml,ini,简单到你无法想象,只需要一共20行代码,绝对原创,欢迎下载...
    • JAVA文件上传管理
      使用说明:将upgrade.config文件放到本地网站根目录,然后设置好相应的工具配置config.ini项就可使用了。 新增功能 2013-4-13 1.使用js压缩工具的时候可用google的Compiler库,需要设置java目录的环境变量 2.多人...
    • 一个ini文件里查找值得哈希算法
      一个 ini 文件里快速段和节查找值的哈希算法
    • Java简易文件管理
      3.实现文本类文件(.txt, .java, .ini, .bat, )的预览功能(比如实现对前100行文本在某个小窗口中进行预览)。4.实现文件的重命名功能。5.实现对某个文件夹进行统计功能(如统计文件夹中文件数目)。
    • linux下兑取ini配置文件
      在linux下进行读取ini配置,已进行过测试,运行良好
    • VB,文件ini
      是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接...
    • C++ 多级目录文件管理系统
      2.Config.ini为配置文件,可以在这里的[Config]项下设置磁盘大小和每块的大小,[Status]项为用于程序查错的状态项,无须更改 3.Config.ini配置项说明: DiskSize:磁盘大小(B) BlockSize:磁盘每块大小(B) ...
    • INI:INI文件管理器——初始化文件读写-matlab开发
      该对象能够生成和解释INI文件中的命令行,以保存或加载MATLAB工作区,脚本或函数中的变量。 此实用程序对象用于以下应用程序: ...
    • 在C#中读写INI配置文件
      在C#中读写INI配置文件 个人珍藏版一般人我可不让他下载哦 大家赶紧下吧